diff --git a/MP.Data/Controllers/MpInveController.cs b/MP.Data/Controllers/MpInveController.cs
index 09d439cc..854a6b78 100644
--- a/MP.Data/Controllers/MpInveController.cs
+++ b/MP.Data/Controllers/MpInveController.cs
@@ -47,15 +47,10 @@ namespace MP.Data.Controllers
.ToList();
}
return dbResult;
- }
+ }
#endregion gestione config
-
-
-
-
-
-
+ #region gestione scansioni
///
/// Elenco Scansioni dato Id sessione inventario
///
@@ -76,6 +71,41 @@ namespace MP.Data.Controllers
return dbResult;
}
+ ///
+ /// Inserisco nuova scansione
+ ///
+ ///
+ ///
+
+ ///
+ /// insert di un record sessione
+ ///
+ ///
+ public async Task InsertNewScansione(ScanDataModel newRec)
+ {
+ bool fatto = false;
+ using (var dbCtx = new MoonPro_InveContext(_configuration))
+ {
+ try
+ {
+ dbCtx
+ .DbScanData
+ .Add(newRec);
+ await dbCtx.SaveChangesAsync();
+ fatto = true;
+ }
+ catch (Exception exc)
+ {
+ Log.Error($"Eccezione durante InsertNewScansione{Environment.NewLine}{exc}");
+ }
+ }
+ return fatto;
+ }
+
+
+ #endregion gestione scansioni
+
+
#region gestione operatori
///
diff --git a/MP.INVE/Data/MiDataService.cs b/MP.INVE/Data/MiDataService.cs
index dd2b6258..c0381993 100644
--- a/MP.INVE/Data/MiDataService.cs
+++ b/MP.INVE/Data/MiDataService.cs
@@ -69,6 +69,84 @@ namespace MP.INVE.Data
{
}
+
+ public async Task> ConfigGetAll()
+ {
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
+ List? result = new List();
+ string source = "DB";
+ // cerco in redis...
+ RedisValue rawData = await redisDb.StringGetAsync(redisConfigBaseAddr);
+ if (!string.IsNullOrEmpty($"{rawData}"))
+ {
+ result = JsonConvert.DeserializeObject>($"{rawData}");
+ source = "REDIS";
+ }
+ else
+ {
+ result = await Task.FromResult(dbController.ConfigGetAll());
+ // serializzo e salvo...
+ rawData = JsonConvert.SerializeObject(result);
+ await redisDb.StringSetAsync(redisConfigBaseAddr, rawData, getRandTOut(redisLongTimeCache));
+ source = "DB";
+ }
+ if (result == null)
+ {
+ result = new List();
+ }
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"ConfigGetAll Read from {source}: {ts.TotalMilliseconds}ms");
+ return result;
+ }
+
+ ///
+ /// Restituisce valore della stringa (SE disponibile)
+ ///
+ ///
+ ///
+ public async Task tryGetConfig(string keyName)
+ {
+ string answ = "";
+ // preselezione valori
+ var configData = await ConfigGetAll();
+ var currRec = configData.FirstOrDefault(x => x.Chiave == keyName);
+ if (currRec != null)
+ {
+ answ = currRec.Valore;
+ }
+
+ return answ;
+ }
+
+ ///
+ /// Reset dati cache config
+ ///
+ ///
+ public async Task ConfigResetCache()
+ {
+ await redisDb.StringSetAsync(redisConfigBaseAddr, "");
+ }
+
+
+ public async Task InsertNewScansione(ScanDataModel newScan)
+ {
+ bool result = false;
+ Stopwatch stopWatch = new Stopwatch();
+ stopWatch.Start();
+ result = await dbController.InsertNewScansione(newScan);
+ // elimino cache redis...
+ RedisValue pattern = new RedisValue(redisScanBaseAddr);
+ bool answ = await ExecFlushRedisPattern(pattern);
+ stopWatch.Stop();
+ TimeSpan ts = stopWatch.Elapsed;
+ Log.Debug($"InsertNewScansione | Id scansione: {newScan.ScanID} | Id sessione: {newScan.InveSessID} | {ts.TotalMilliseconds}ms");
+ return result;
+ // aggiungo record al DB
+ }
+
+
public async Task InsertNewSessione(InventorySessionModel newSess)
{
bool result = false;
@@ -80,7 +158,7 @@ namespace MP.INVE.Data
bool answ = await ExecFlushRedisPattern(pattern);
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
- Log.Debug($"InsertNewSessione | Id sessione: {newSess.InveSessID} | Id sessione: {newSess.Description} | {ts.TotalMilliseconds}ms");
+ Log.Debug($"InsertNewSessione | Id sessione: {newSess.InveSessID} | Descrizione sessione: {newSess.Description} | {ts.TotalMilliseconds}ms");
return result;
// aggiungo record al DB
}
@@ -406,16 +484,6 @@ namespace MP.INVE.Data
bool answ = await ExecFlushRedisPattern(pattern);
return answ;
}
-#if false
-
- public async Task FlushRedisCache(string keyPattern)
- {
- await Task.Delay(1);
- RedisValue pattern = new RedisValue($"{keyPattern}*");
- bool answ = await ExecFlushRedisPattern(pattern);
- return answ;
- }
-#endif
///
/// Esegue flush memoria redis dato pattern
@@ -455,6 +523,8 @@ namespace MP.INVE.Data
private const string redisOperatoriBaseAddr = ":Operatore";
private const string redisUdcBaseAddr = ":UDC";
private const string redisLottiBaseAddr = ":Lotti";
+ private const string redisConfigBaseAddr = ":Config";
+ private const string redisScanBaseAddr = ":Config";
private const string redisElencoOperatori = redisBaseAddr + redisOperatoriBaseAddr + ":ListOperatori";
private const string redisOperatoreLogged = redisBaseAddr + redisOperatoriBaseAddr + ":OperatoreLogged";
private const string redisSessionCurrList = redisBaseAddr + redisSessionBaseAddr + ":ListSessHist";