From 3c9db807ed494bc917f9664f949ce96ade091741 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 17 Nov 2022 12:16:32 +0100 Subject: [PATCH] Fix sessione --- MP.Data/Controllers/MpInveController.cs | 20 ++------ MP.INVE/Data/MiDataService.cs | 68 ++++++++++++++++--------- MP.INVE/MP.INVE.csproj | 2 +- MP.INVE/Pages/Session.razor.cs | 5 +- MP.INVE/Resources/ChangeLog.html | 2 +- MP.INVE/Resources/VersNum.txt | 2 +- MP.INVE/Resources/manifest.xml | 2 +- 7 files changed, 53 insertions(+), 48 deletions(-) diff --git a/MP.Data/Controllers/MpInveController.cs b/MP.Data/Controllers/MpInveController.cs index b1823833..177b8a01 100644 --- a/MP.Data/Controllers/MpInveController.cs +++ b/MP.Data/Controllers/MpInveController.cs @@ -28,31 +28,17 @@ namespace MP.Data.Controllers /// Elenco Inventari CORRENTI (=aperti, senza data fine) /// /// - public List InventSessCurrList(DateTime dtStart, DateTime? dtEnd) + public List InventSessCurrList() { List dbResult = new List(); using (var dbCtx = new MoonPro_InveContext(_configuration)) { - if(dtEnd == null) - { - - dbResult = dbCtx .DbInveSess .Where(x => x.DtEnd == null) .AsNoTracking() .OrderByDescending(x => x.DtStart) .ToList(); - } - else - { - dbResult = dbCtx - .DbInveSess - .Where(x => (x.DtEnd == dtEnd) && (x.DtStart == dtStart)) - .AsNoTracking() - .OrderByDescending(x => x.DtStart) - .ToList(); - } } return dbResult; } @@ -70,7 +56,7 @@ namespace MP.Data.Controllers { dbResult = dbCtx .DbInveSess - .Where(x => x.DtStart >= FromDate && x.DtStart <= ToDate) + .Where(x => x.DtStart >= FromDate && x.DtStart <= ToDate && x.DtEnd != null) .AsNoTracking() .OrderByDescending(x => x.DtStart) .ToList(); @@ -127,7 +113,7 @@ namespace MP.Data.Controllers { dbResult = dbCtx .DbOperatori - .Where(s => (s.MatrOpr > 0) && (s.MatrOpr == matrOpr) && (s.authKey==authKey)) + .Where(s => (s.MatrOpr > 0) && (s.MatrOpr == matrOpr) && (s.authKey == authKey)) .AsNoTracking() .ToList(); } diff --git a/MP.INVE/Data/MiDataService.cs b/MP.INVE/Data/MiDataService.cs index 9d722505..29acf4f3 100644 --- a/MP.INVE/Data/MiDataService.cs +++ b/MP.INVE/Data/MiDataService.cs @@ -113,39 +113,58 @@ namespace MP.INVE.Data return SteamCrypto.EncryptString(rawData, passPhrase); } - public List InventSessCurrList(DateTime dtStart, DateTime? dtEnd) + public List InventSessCurrList() { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); List result = new List(); + string source = "DB"; // cerco in redis... - RedisValue rawData = redisDb.StringGet(redisSessionList); + RedisValue rawData = redisDb.StringGet(redisSessionCurrList); if (!string.IsNullOrEmpty($"{rawData}")) { - var dese = JsonConvert.DeserializeObject>($"{rawData}"); - if ((dtEnd != null) && (dese != null)) - { - result = dese.Where(x => (x.DtStart == dtStart) && (x.DtEnd == dtEnd)).ToList(); - } - else - { - result = dese; - } - stopWatch.Stop(); - TimeSpan ts = stopWatch.Elapsed; - Log.Debug($"InventSessCurrList Read from REDIS: {ts.TotalMilliseconds}ms"); + result = JsonConvert.DeserializeObject>($"{rawData}"); + source = "REDIS"; } else { - result = dbController.InventSessCurrList(dtStart, dtEnd); - + result = dbController.InventSessCurrList(); // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); - redisDb.StringSetAsync(redisSessionList, rawData, getRandTOut(redisLongTimeCache)); - stopWatch.Stop(); - TimeSpan ts = stopWatch.Elapsed; - Log.Debug($"InventSessCurrList Read from DB: {ts.TotalMilliseconds}ms"); + redisDb.StringSetAsync(redisSessionCurrList, rawData, getRandTOut(redisLongTimeCache)); } + stopWatch.Stop(); + TimeSpan ts = stopWatch.Elapsed; + Log.Debug($"InventSessCurrList Read from {source}: {ts.TotalMilliseconds}ms"); + if (result == null) + { + result = new List(); + } + return result; + } + public List InventSessHistList(DateTime dtStart, DateTime dtEnd) + { + Stopwatch stopWatch = new Stopwatch(); + stopWatch.Start(); + List result = new List(); + string source = "DB"; + // cerco in redis... + RedisValue rawData = redisDb.StringGet($"{redisSessionHistList}:{dtStart:yyyyMMdd_HHmmss}:{dtEnd:yyyyMMdd_HHmmss}"); + if (!string.IsNullOrEmpty($"{rawData}")) + { + result = JsonConvert.DeserializeObject>($"{rawData}"); + source = "REDIS"; + } + else + { + result = dbController.InventSessHistList(dtStart, dtEnd); + // serializzo e salvo... + rawData = JsonConvert.SerializeObject(result); + redisDb.StringSetAsync(redisSessionHistList, rawData, getRandTOut(redisLongTimeCache)); + } + stopWatch.Stop(); + TimeSpan ts = stopWatch.Elapsed; + Log.Debug($"InventSessHistList Read from {source}: {ts.TotalMilliseconds}ms"); if (result == null) { result = new List(); @@ -180,17 +199,16 @@ namespace MP.INVE.Data #region Private Fields + private const string redisBaseAddr = "MP:INVE"; + private const string redisElencoOperatori = redisBaseAddr + ":ListOperatori"; + private const string redisSessionCurrList = redisBaseAddr + ":ListSessHist"; + private const string redisSessionHistList = redisBaseAddr + ":ListSessCurr"; private static IConfiguration _configuration = null!; private static ILogger _logger = null!; private static Logger Log = LogManager.GetCurrentClassLogger(); - private const string redisBaseAddr = "MP:INVE"; - - private const string redisElencoOperatori = redisBaseAddr + ":eleOperatori"; - private const string redisSessionList = redisBaseAddr + ":sessionList"; - /// /// Oggetto vocabolario x uso continuo traduzione /// diff --git a/MP.INVE/MP.INVE.csproj b/MP.INVE/MP.INVE.csproj index 6a443a64..56e9de9f 100644 --- a/MP.INVE/MP.INVE.csproj +++ b/MP.INVE/MP.INVE.csproj @@ -5,7 +5,7 @@ enable enable MP.INVE - 6.16.2211.1711 + 6.16.2211.1712 diff --git a/MP.INVE/Pages/Session.razor.cs b/MP.INVE/Pages/Session.razor.cs index 682ace4f..cb891116 100644 --- a/MP.INVE/Pages/Session.razor.cs +++ b/MP.INVE/Pages/Session.razor.cs @@ -75,14 +75,15 @@ namespace MP.INVE.Pages private async Task reloadData() { await Task.Delay(1); + elencoSessioni = null; isLoading = true; if (inCorso) { - elencoSessioni = MIDataservice.InventSessCurrList(dtStart, null); + elencoSessioni = MIDataservice.InventSessCurrList(); } else { - elencoSessioni = MIDataservice.InventSessCurrList(dtStart, dtEnd); + elencoSessioni = MIDataservice.InventSessHistList(dtStart, dtEnd); } isLoading = false; } diff --git a/MP.INVE/Resources/ChangeLog.html b/MP.INVE/Resources/ChangeLog.html index 553cdbb8..1a30babc 100644 --- a/MP.INVE/Resources/ChangeLog.html +++ b/MP.INVE/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOINVE -

Versione: 6.16.2211.1711

+

Versione: 6.16.2211.1712


Note di rilascio:
  • diff --git a/MP.INVE/Resources/VersNum.txt b/MP.INVE/Resources/VersNum.txt index 882eb457..eea11514 100644 --- a/MP.INVE/Resources/VersNum.txt +++ b/MP.INVE/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2211.1711 +6.16.2211.1712 diff --git a/MP.INVE/Resources/manifest.xml b/MP.INVE/Resources/manifest.xml index 86641f24..bc117095 100644 --- a/MP.INVE/Resources/manifest.xml +++ b/MP.INVE/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2211.1711 + 6.16.2211.1712 https://nexus.steamware.net/repository/SWS/MP-INVE/stable/LAST/MP.INVE.zip https://nexus.steamware.net/repository/SWS/MP-INVE/stable/LAST/ChangeLog.html false