aggiunti metodi per lista scansione,
update scansione, lista scansione x sessione
This commit is contained in:
@@ -51,8 +51,29 @@ namespace MP.Data.Controllers
|
||||
#endregion gestione config
|
||||
|
||||
#region gestione scansioni
|
||||
|
||||
/// <summary>
|
||||
/// Elenco Scansioni dato Id sessione inventario
|
||||
/// Elenco Scansioni Totali
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<ScanDataModel> ScanList()
|
||||
{
|
||||
List<ScanDataModel> dbResult = new List<ScanDataModel>();
|
||||
using (var dbCtx = new MoonPro_InveContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbScanData
|
||||
.AsNoTracking()
|
||||
.OrderByDescending(x => x.DtScan)
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Elenco Scansioni Totali
|
||||
/// </summary>
|
||||
/// <param name="InveSessId"></param>
|
||||
/// <returns></returns>
|
||||
@@ -63,12 +84,64 @@ namespace MP.Data.Controllers
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbScanData
|
||||
.Where(x => x.InveSessID == InveSessId)
|
||||
.AsNoTracking()
|
||||
.Where(x => x.InveSessID == InveSessId)
|
||||
.OrderByDescending(x => x.DtScan)
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Elenco Scansioni dato Id sessione inventario
|
||||
/// </summary>
|
||||
/// <param name="InveSessId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> updateScan(ScanDataModel editRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonPro_InveContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
var currRec = dbCtx
|
||||
.DbScanData
|
||||
.Where(x => x.ScanID == editRec.ScanID)
|
||||
.FirstOrDefault();
|
||||
if (currRec != null)
|
||||
{
|
||||
currRec.ScanID = editRec.ScanID;
|
||||
currRec.CodArticolo = editRec.CodArticolo;
|
||||
currRec.DtScan = editRec.DtScan;
|
||||
currRec.UserScan = editRec.UserScan;
|
||||
currRec.ScanValue = editRec.ScanValue;
|
||||
currRec.IsForced = editRec.IsForced;
|
||||
currRec.Lotto = editRec.Lotto;
|
||||
currRec.RifExt = editRec.RifExt;
|
||||
currRec.Qty = editRec.Qty;
|
||||
currRec.Note = editRec.Note;
|
||||
currRec.IsKnown = editRec.IsKnown;
|
||||
currRec.IsUnique = editRec.IsUnique;
|
||||
currRec.InveSessID = editRec.InveSessID;
|
||||
dbCtx.Entry(currRec).State = EntityState.Modified;
|
||||
}
|
||||
else
|
||||
{
|
||||
dbCtx
|
||||
.DbScanData
|
||||
.Add(editRec);
|
||||
}
|
||||
await dbCtx.SaveChangesAsync();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante ScanBySession{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -146,7 +219,7 @@ namespace MP.Data.Controllers
|
||||
.Where(s => (s.MatrOpr > 0) && (s.MatrOpr == matrOpr) && (s.authKey == authKey))
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
if(dbResult.Count == 1)
|
||||
if (dbResult.Count == 1)
|
||||
{
|
||||
answ = true;
|
||||
}
|
||||
@@ -276,7 +349,7 @@ namespace MP.Data.Controllers
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbUdcData
|
||||
.Include(m=>m.lottoNav)
|
||||
.Include(m => m.lottoNav)
|
||||
.AsNoTracking()
|
||||
.OrderByDescending(x => x.UDC)
|
||||
.ToList();
|
||||
@@ -302,7 +375,7 @@ namespace MP.Data.Controllers
|
||||
.OrderByDescending(x => x.UDC)
|
||||
.ToList();
|
||||
|
||||
if(dbResult.Count == 1)
|
||||
if (dbResult.Count == 1)
|
||||
{
|
||||
answ = true;
|
||||
}
|
||||
|
||||
@@ -297,6 +297,72 @@ namespace MP.INVE.Data
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<ScanDataModel> ScanList()
|
||||
{
|
||||
string source = "";
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
stopWatch.Start();
|
||||
List<ScanDataModel>? result = new List<ScanDataModel>();
|
||||
// cerco in redis...
|
||||
RedisValue rawData = redisDb.StringGet(redisScanBaseAddr);
|
||||
if (!string.IsNullOrEmpty($"{rawData}"))
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<List<ScanDataModel>>($"{rawData}");
|
||||
|
||||
source = "REDIS";
|
||||
}
|
||||
else
|
||||
{
|
||||
result = dbController.ScanList();
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
redisDb.StringSetAsync(redisScanBaseAddr, rawData, getRandTOut(redisLongTimeCache));
|
||||
source = "DB";
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<ScanDataModel>();
|
||||
}
|
||||
stopWatch.Stop();
|
||||
TimeSpan ts = stopWatch.Elapsed;
|
||||
Log.Debug($"ScanList Read from {source}: {ts.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
public List<ScanDataModel> ScanBySession(int idSessione)
|
||||
{
|
||||
string source = "";
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
stopWatch.Start();
|
||||
List<ScanDataModel>? result = new List<ScanDataModel>();
|
||||
// cerco in redis...
|
||||
{
|
||||
var ListAll = ScanList();
|
||||
result = ListAll.Where(x => x.InveSessID == idSessione).ToList();
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<ScanDataModel>();
|
||||
}
|
||||
stopWatch.Stop();
|
||||
TimeSpan ts = stopWatch.Elapsed;
|
||||
Log.Debug($"ScanBySession Read from {source}: {ts.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Aggiornamento record selezionato
|
||||
/// </summary>
|
||||
/// <param name="currRec"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> UpdateScan(ScanDataModel currRec)
|
||||
{
|
||||
var dbResult = await dbController.updateScan(currRec);
|
||||
// elimino cache redis...
|
||||
RedisValue pattern = new RedisValue(redisScanBaseAddr);
|
||||
bool answ = await ExecFlushRedisPattern(pattern);
|
||||
await Task.Delay(1);
|
||||
return dbResult;
|
||||
}
|
||||
public List<AnagUdcModel> ElencoUDC()
|
||||
{
|
||||
string source = "";
|
||||
@@ -524,7 +590,7 @@ namespace MP.INVE.Data
|
||||
private const string redisUdcBaseAddr = ":UDC";
|
||||
private const string redisLottiBaseAddr = ":Lotti";
|
||||
private const string redisConfigBaseAddr = ":Config";
|
||||
private const string redisScanBaseAddr = ":Config";
|
||||
private const string redisScanBaseAddr = redisBaseAddr + ":Scan";
|
||||
private const string redisElencoOperatori = redisBaseAddr + redisOperatoriBaseAddr + ":ListOperatori";
|
||||
private const string redisOperatoreLogged = redisBaseAddr + redisOperatoriBaseAddr + ":OperatoreLogged";
|
||||
private const string redisSessionCurrList = redisBaseAddr + redisSessionBaseAddr + ":ListSessHist";
|
||||
|
||||
Reference in New Issue
Block a user