Fix sessione

This commit is contained in:
Samuele Locatelli
2022-11-17 12:16:32 +01:00
parent d3eedba82a
commit 3c9db807ed
7 changed files with 53 additions and 48 deletions
+3 -17
View File
@@ -28,31 +28,17 @@ namespace MP.Data.Controllers
/// Elenco Inventari CORRENTI (=aperti, senza data fine)
/// </summary>
/// <returns></returns>
public List<InventorySessionModel> InventSessCurrList(DateTime dtStart, DateTime? dtEnd)
public List<InventorySessionModel> InventSessCurrList()
{
List<InventorySessionModel> dbResult = new List<InventorySessionModel>();
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();
}
+43 -25
View File
@@ -113,39 +113,58 @@ namespace MP.INVE.Data
return SteamCrypto.EncryptString(rawData, passPhrase);
}
public List<InventorySessionModel> InventSessCurrList(DateTime dtStart, DateTime? dtEnd)
public List<InventorySessionModel> InventSessCurrList()
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
List<InventorySessionModel> result = new List<InventorySessionModel>();
string source = "DB";
// cerco in redis...
RedisValue rawData = redisDb.StringGet(redisSessionList);
RedisValue rawData = redisDb.StringGet(redisSessionCurrList);
if (!string.IsNullOrEmpty($"{rawData}"))
{
var dese = JsonConvert.DeserializeObject<List<InventorySessionModel>>($"{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<List<InventorySessionModel>>($"{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<InventorySessionModel>();
}
return result;
}
public List<InventorySessionModel> InventSessHistList(DateTime dtStart, DateTime dtEnd)
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
List<InventorySessionModel> result = new List<InventorySessionModel>();
string source = "DB";
// cerco in redis...
RedisValue rawData = redisDb.StringGet($"{redisSessionHistList}:{dtStart:yyyyMMdd_HHmmss}:{dtEnd:yyyyMMdd_HHmmss}");
if (!string.IsNullOrEmpty($"{rawData}"))
{
result = JsonConvert.DeserializeObject<List<InventorySessionModel>>($"{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<InventorySessionModel>();
@@ -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<MiDataService> _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";
/// <summary>
/// Oggetto vocabolario x uso continuo traduzione
/// </summary>
+1 -1
View File
@@ -5,7 +5,7 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MP.INVE</RootNamespace>
<Version>6.16.2211.1711</Version>
<Version>6.16.2211.1712</Version>
</PropertyGroup>
<ItemGroup>
+3 -2
View File
@@ -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;
}
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MAPOINVE </i>
<h4>Versione: 6.16.2211.1711</h4>
<h4>Versione: 6.16.2211.1712</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2211.1711
6.16.2211.1712
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2211.1711</version>
<version>6.16.2211.1712</version>
<url>https://nexus.steamware.net/repository/SWS/MP-INVE/stable/LAST/MP.INVE.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/MP-INVE/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>