using Egw.Window.Data; namespace EgwCoreLib.Lux.Data.Services.General { public class ConfigDataService : BaseServ, IConfigDataService { #region Public Constructors public ConfigDataService(IConfiguration configuration, IConnectionMultiplexer RedisConn) : base(configuration, RedisConn) { // init implicito _redisBaseKey = configuration.GetValue("ServerConf:RedisBaseKey") ?? "Lux"; Log.Info($"ConfigDataService | Init OK"); } #endregion Public Constructors #region Public Methods /// public async Task> HwModelListAsync(Constants.EXECENVIRONMENTS execEnvironment, string HwReq = "HW.AGB") { List result = new List(); // leggo obj da redis cache var currKey = $"{_redisBaseKey}:{execEnvironment}:HML:{HwReq}"; RedisValue rawData = await _redisDb.StringGetAsync(currKey); // prendo solo i valori validi (Name <> FamilyName) if (rawData.HasValue) { var currList = JsonConvert.DeserializeObject>($"{rawData}"); result = currList ?? new List(); } return result; } /// public async Task> ProfileListAsync(Constants.EXECENVIRONMENTS execEnvironment, string ProfReq = "Default") { List result = new List(); // leggo obj da redis cache var currKey = $"{_redisBaseKey}:{execEnvironment}:PROF:LIST:{ProfReq}"; RedisValue rawData = await _redisDb.StringGetAsync(currKey); // prendo solo i valori validi (Name <> FamilyName) if (rawData.HasValue) { var currList = JsonConvert.DeserializeObject>($"{rawData}"); result = currList ?? new List(); } return result; } /// public async Task> ProfileThreshListAsync(Constants.EXECENVIRONMENTS execEnvironment, string ProfReq = "Default") { List result = new List(); // leggo obj da redis cache var currKey = $"{_redisBaseKey}:{execEnvironment}:PROF:THRESH:{ProfReq}"; RedisValue rawData = await _redisDb.StringGetAsync(currKey); // prendo solo i valori validi (Name <> FamilyName) if (rawData.HasValue) { var currList = JsonConvert.DeserializeObject>($"{rawData}"); result = currList ?? new List(); } return result; } /// public async Task>> ProfileThreshDictAsync(Constants.EXECENVIRONMENTS execEnvironment) { Dictionary> result = new Dictionary>(); // recupero profili per ciclare... List profList = await ProfileListAsync(execEnvironment); foreach (var prof in profList) { // leggo obj da redis cache var currKey = $"{_redisBaseKey}:{execEnvironment}:PROF:THRESH:{prof}"; RedisValue rawData = _redisDb.StringGet(currKey); // prendo solo i valori validi (Name <> FamilyName) if (rawData.HasValue) { var currList = JsonConvert.DeserializeObject>($"{rawData}") ?? new List(); if (currList.Any()) { result.Add(prof, currList); } } } return result; } #endregion Public Methods #region Private Fields private static Logger Log = LogManager.GetCurrentClassLogger(); private string _redisBaseKey = "Lux"; #endregion Private Fields } }