Aggiunta metodo GetIdlePeriod

This commit is contained in:
Samuele Locatelli
2026-04-15 18:41:22 +02:00
parent 257ddbf775
commit a0eeac59f0
5 changed files with 113 additions and 27 deletions
+62 -1
View File
@@ -1,4 +1,5 @@
using MP.Core.Conf;
using Microsoft.EntityFrameworkCore;
using MP.Core.Conf;
using MP.Core.DTO;
using MP.Core.Objects;
using MP.Data;
@@ -263,6 +264,66 @@ namespace MP.IOC.Data
return answ;
}
/// <summary>
/// Restituisce l'anagrafica STATI per intero
/// </summary>
/// <returns></returns>
public async Task<List<AnagStatiModel>> AnagStatiGetAllAsync()
{
List<AnagStatiModel> dbResult = new List<AnagStatiModel>();
// cerco in redis...
var currKey = Utils.redisAnagStati;
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
dbResult = JsonConvert.DeserializeObject<List<AnagStatiModel>>($"{rawData}") ?? new();
}
else
{
dbResult = await IocDbController.AnagStatiGetAllAsync();
// serializzo e salvo...
rawData = JsonConvert.SerializeObject(dbResult);
await redisDb.StringSetAsync(currKey, rawData, getRandTOut(redisLongTimeCache));
}
return dbResult;
}
/// <summary>
/// MS max age x dato MSE
/// </summary>
private int maxAge = 2000;
/// <summary>
/// Elenco da tabella MappaStatoExplModel
/// </summary>
/// <returns></returns>
public async Task<List<MappaStatoExplModel>> MseGetAllAsync(bool forceDb = false)
{
Stopwatch sw = new Stopwatch();
string source = "DB";
sw.Start();
List<MappaStatoExplModel>? result = new List<MappaStatoExplModel>();
// cerco in _redisConn...
RedisValue rawData = await redisDb.StringGetAsync(Constants.redisMseKey);
if (rawData.HasValue && !forceDb)
{
result = JsonConvert.DeserializeObject<List<MappaStatoExplModel>>($"{rawData}") ?? new();
source = "REDIS";
}
else
{
result = await IocDbController.MseGetAllAsync(maxAge);
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(Constants.redisMseKey, rawData, getRandTOut(redisShortTimeCache / 2));
}
if (result == null)
{
result = new List<MappaStatoExplModel>();
}
sw.Stop();
Log.Debug($"MseGetAllAsync | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
public async Task<List<ListValuesModel>> AnagStatiComm()
{
Stopwatch stopWatch = new Stopwatch();