Continuo implementazione metodi gestione TemplateKIT

This commit is contained in:
Samuele Locatelli
2025-04-09 13:17:40 +02:00
parent 28c4adff0d
commit 0d4e4046a6
2 changed files with 213 additions and 60 deletions
+121 -60
View File
@@ -259,41 +259,6 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Elenco parametri validi tab/campo
/// </summary>
/// <returns></returns>
public List<ListValues> ListValuesFilt(string tabName, string fieldName)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<ListValues>? result = new List<ListValues>();
// cerco in redis...
string currKey = $"{redisBaseKey}:ListVal:{tabName}:{fieldName}";
RedisValue rawData = redisDb.StringGet(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<ListValues>>($"{rawData}");
source = "REDIS";
}
else
{
result = dbTabController.ListValuesFilt(tabName, fieldName);
// serializzo e salvo...
rawData = JsonConvert.SerializeObject(result);
redisDb.StringSet(currKey, rawData, UltraLongCache);
}
if (result == null)
{
result = new List<ListValues>();
}
sw.Stop();
Log.Debug($"ListValuesFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// <summary>
/// Elenco EVENTI validi x macchina
/// </summary>
@@ -1079,6 +1044,28 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Chiama stored x congelare i dati giornalieri
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="dtCurr"></param>
/// <returns></returns>
public async Task<bool> InsManFreezeDay(string idxMacchina, DateTime dtCurr)
{
bool fatto = false;
Stopwatch sw = new Stopwatch();
sw.Start();
Log.Info($"Inizio InsManFreezeDay | idxMacchina: {idxMacchina}");
// salvo
fatto = await dbTabController.InsManFreezeDay(idxMacchina, dtCurr);
// svuoto cache
RedisValue pattern = $"{redisBaseKey}:InsMan:*";
await ExecFlushRedisPatternAsync(pattern);
sw.Stop();
Log.Info($"Fine InsManFreezeDay | idxMacchina: {idxMacchina} | elapsed: {sw.Elapsed.TotalMilliseconds:N2} ms");
return fatto;
}
/// <summary>
/// Elenco DTO x plotting seq stati giornaliero
/// </summary>
@@ -1179,36 +1166,12 @@ namespace MP.Data.Services
ValueMax = 1440
};
result.Add(currRec);
}
}
}
return result;
}
/// <summary>
/// Chiama stored x congelare i dati giornalieri
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="dtCurr"></param>
/// <returns></returns>
public async Task<bool> InsManFreezeDay(string idxMacchina, DateTime dtCurr)
{
bool fatto = false;
Stopwatch sw = new Stopwatch();
sw.Start();
Log.Info($"Inizio InsManFreezeDay | idxMacchina: {idxMacchina}");
// salvo
fatto = await dbTabController.InsManFreezeDay(idxMacchina, dtCurr);
// svuoto cache
RedisValue pattern = $"{redisBaseKey}:InsMan:*";
await ExecFlushRedisPatternAsync(pattern);
sw.Stop();
Log.Info($"Fine InsManFreezeDay | idxMacchina: {idxMacchina} | elapsed: {sw.Elapsed.TotalMilliseconds:N2} ms");
return fatto;
}
/// <summary>
/// Esegue salvataggio record + svuotamento cache
/// </summary>
@@ -1308,6 +1271,40 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Elenco parametri validi tab/campo
/// </summary>
/// <returns></returns>
public List<ListValues> ListValuesFilt(string tabName, string fieldName)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<ListValues>? result = new List<ListValues>();
// cerco in redis...
string currKey = $"{redisBaseKey}:ListVal:{tabName}:{fieldName}";
RedisValue rawData = redisDb.StringGet(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<ListValues>>($"{rawData}");
source = "REDIS";
}
else
{
result = dbTabController.ListValuesFilt(tabName, fieldName);
// serializzo e salvo...
rawData = JsonConvert.SerializeObject(result);
redisDb.StringSet(currKey, rawData, UltraLongCache);
}
if (result == null)
{
result = new List<ListValues>();
}
sw.Stop();
Log.Debug($"ListValuesFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// <summary>
/// Elenco lotti esterni presenti sul db di ARCA
/// </summary>
@@ -3444,6 +3441,71 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Elimina record + svuotamento cache
/// </summary>
/// <param name="currRecord"></param>
public async Task<bool> TemplateKitDelete(TemplateKitModel currRecord)
{
bool fatto = false;
// salvo
fatto = dbTabController.TemplateKitDelete(currRecord);
// svuoto cache
RedisValue pattern = $"{redisBaseKey}:KitTemplate:*";
await ExecFlushRedisPatternAsync(pattern);
return fatto;
}
/// <summary>
/// Elenco template da ricerca
/// </summary>
/// <param name="searchVal"></param>
/// <returns></returns>
public List<TemplateKitModel> TemplateKitFilt(string searchVal)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<TemplateKitModel>? result = new List<TemplateKitModel>();
// cerco in redis...
string currKey = $"{redisBaseKey}:KitTemplate:{searchVal}";
RedisValue rawData = redisDb.StringGet(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<TemplateKitModel>>($"{rawData}");
source = "REDIS";
}
else
{
result = dbTabController.TemplateKitFilt(searchVal);
// serializzo e salvo...
rawData = JsonConvert.SerializeObject(result);
redisDb.StringSet(currKey, rawData, FastCache);
}
if (result == null)
{
result = new List<TemplateKitModel>();
}
sw.Stop();
Log.Debug($"TemplateKitFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// <summary>
/// Esegue salvataggio record + svuotamento cache
/// </summary>
/// <param name="currRecord"></param>
public async Task<bool> TemplateKitUpsert(TemplateKitModel currRecord)
{
bool fatto = false;
// salvo
fatto = dbTabController.TemplateKitUpsert(currRecord);
// svuoto cache
RedisValue pattern = $"{redisBaseKey}:KitTemplate:*";
await ExecFlushRedisPatternAsync(pattern);
return fatto;
}
/// <summary>
/// Turno macchina
/// </summary>
@@ -4119,7 +4181,6 @@ namespace MP.Data.Services
return redHashMpIO($"SavedTask:{idxMacchina}");
}
#endregion Private Methods
}
}