diff --git a/MP.Data/Controllers/MpInveController.cs b/MP.Data/Controllers/MpInveController.cs
index 99001c0e..b1823833 100644
--- a/MP.Data/Controllers/MpInveController.cs
+++ b/MP.Data/Controllers/MpInveController.cs
@@ -28,17 +28,31 @@ namespace MP.Data.Controllers
/// Elenco Inventari CORRENTI (=aperti, senza data fine)
///
///
- public List InventSessCurrList()
+ public List InventSessCurrList(DateTime dtStart, DateTime? dtEnd)
{
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;
}
diff --git a/MP.INVE/Data/MiDataService.cs b/MP.INVE/Data/MiDataService.cs
index d1da13ea..9d722505 100644
--- a/MP.INVE/Data/MiDataService.cs
+++ b/MP.INVE/Data/MiDataService.cs
@@ -1,8 +1,10 @@
using Egw.Core;
using MP.Data.Conf;
using MP.Data.DatabaseModels;
+using Newtonsoft.Json;
using NLog;
using StackExchange.Redis;
+using System.Diagnostics;
namespace MP.INVE.Data
{
@@ -66,8 +68,43 @@ namespace MP.INVE.Data
public List ElencoOperatori(int matrOpr, string authkey)
{
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
List? result = new List();
- result = dbController.ElencoOperatori(matrOpr, authkey);
+ // cerco in redis...
+ RedisValue rawData = redisDb.StringGet(redisElencoOperatori);
+ if (!string.IsNullOrEmpty($"{rawData}"))
+ {
+ var dese = JsonConvert.DeserializeObject>($"{rawData}");
+ if (dese != null)
+ {
+ if ((matrOpr != 0) && (authkey != ""))
+ {
+ result = dese.Where(x => (x.MatrOpr == matrOpr) && (x.authKey == authkey)).ToList();
+ }
+ else
+ {
+ result = dese;
+ }
+ }
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"ElencoOperatori Read from REDIS: {ts.TotalMilliseconds}ms");
+ }
+ else
+ {
+ result = dbController.ElencoOperatori(matrOpr, authkey);
+ // serializzo e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ redisDb.StringSetAsync(redisElencoOperatori, rawData, getRandTOut(redisLongTimeCache));
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"ElencoOperatori Read from DB: {ts.TotalMilliseconds}ms");
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
return result;
}
@@ -76,10 +113,43 @@ namespace MP.INVE.Data
return SteamCrypto.EncryptString(rawData, passPhrase);
}
- public List InventSessCurrList()
+ public List InventSessCurrList(DateTime dtStart, DateTime? dtEnd)
{
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
List result = new List();
- result = dbController.InventSessCurrList();
+ // cerco in redis...
+ RedisValue rawData = redisDb.StringGet(redisSessionList);
+ 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");
+ }
+ else
+ {
+ result = dbController.InventSessCurrList(dtStart, dtEnd);
+
+ // 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");
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
return result;
}
@@ -116,6 +186,11 @@ namespace MP.INVE.Data
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 ac2ca808..6a443a64 100644
--- a/MP.INVE/MP.INVE.csproj
+++ b/MP.INVE/MP.INVE.csproj
@@ -5,7 +5,7 @@
enable
enable
MP.INVE
- 6.16.2211.1618
+ 6.16.2211.1711
diff --git a/MP.INVE/Pages/Session.razor b/MP.INVE/Pages/Session.razor
index 13318d17..55757515 100644
--- a/MP.INVE/Pages/Session.razor
+++ b/MP.INVE/Pages/Session.razor
@@ -1,57 +1,87 @@
@page "/Session"
+
-