Fix sessione
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,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 @@
|
||||
6.16.2211.1711
|
||||
6.16.2211.1712
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user