Files
lux/EgwCoreLib.Lux.Data/Services/ConfigDataService.cs
T
2025-10-02 19:02:20 +02:00

54 lines
1.9 KiB
C#

using EgwCoreLib.Lux.Core.RestPayload;
using EgwCoreLib.Lux.Data.Controllers;
using EgwCoreLib.Lux.Data.DbModel.Config;
using EgwMultiEngineManager.Data;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
using NLog;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.Services
{
public class ConfigDataService : BaseServ
{
public ConfigDataService(IConfiguration configuration, IConnectionMultiplexer RedisConn) : base(configuration, RedisConn)
{
// init implicito
Log.Info($"ConfigDataService | Init OK");
}
/// <summary>
/// restituisce l'elenco dell'HW valido in memoria
/// </summary>
/// <returns></returns>
public List<HardwareModel> ElencoHw(Constants.EXECENVIRONMENTS execEnvironment, string HwReq = "HW.AGB")
{
List<HardwareModel> result = new List<HardwareModel>();
// leggo obj da redis cache
var currKey = $"{redisBaseKey}:{execEnvironment}:HML:{HwReq}";
RedisValue rawData = redisDb.StringGet(currKey);
// prendo solo i valori validi (Description <> FamilyName)
if (rawData.HasValue)
{
var currList = JsonConvert.DeserializeObject<List<HardwareModel>>($"{rawData}");
result = currList ?? new List<HardwareModel>();
//var currList = JsonConvert.DeserializeObject<HwListDTO>($"{rawData}");
//if (currList != null && currList.ListItem != null)
//{
// result = currList.ListItem;
//}
}
return result;
}
private static Logger Log = LogManager.GetCurrentClassLogger();
private string redisBaseKey = "Lux";
}
}