Continuo implementazione metodi gestione TemplateKIT
This commit is contained in:
@@ -2281,6 +2281,98 @@ namespace MP.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco template da ricerca
|
||||
/// </summary>
|
||||
/// <param name="searchVal"></param>
|
||||
/// <returns></returns>
|
||||
public List<TemplateKitModel> TemplateKitFilt(string searchVal)
|
||||
{
|
||||
List<TemplateKitModel> dbResult = new List<TemplateKitModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetTempKit
|
||||
.Where(x => x.CodArtParent.Contains(searchVal) || x.CodArtChild.Contains(searchVal))
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elimina record
|
||||
/// </summary>
|
||||
/// <param name="currRecord"></param>
|
||||
public bool TemplateKitDelete(TemplateKitModel currRecord)
|
||||
{
|
||||
bool fatto = false;
|
||||
#if false
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var actRec = dbCtx
|
||||
.DbSetInsManuali
|
||||
.Where(x => currRecord.IdxInsMan > 0 && x.IdxInsMan == currRecord.IdxInsMan)
|
||||
.FirstOrDefault();
|
||||
// se ci fosse aggiorno...
|
||||
if (actRec != null)
|
||||
{
|
||||
dbCtx
|
||||
.DbSetInsManuali
|
||||
.Remove(actRec);
|
||||
}
|
||||
var res = dbCtx.SaveChanges();
|
||||
fatto = res != 0;
|
||||
}
|
||||
#endif
|
||||
return fatto;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Esegue upsert record
|
||||
/// </summary>
|
||||
/// <param name="currRecord"></param>
|
||||
public bool TemplateKitUpsert(TemplateKitModel currRecord)
|
||||
{
|
||||
bool fatto = false;
|
||||
#if false
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var actRec = dbCtx
|
||||
.DbSetInsManuali
|
||||
.Where(x => currRecord.IdxInsMan > 0 && x.IdxInsMan == currRecord.IdxInsMan)
|
||||
.FirstOrDefault();
|
||||
// se ci fosse aggiorno...
|
||||
if (actRec == null)
|
||||
{
|
||||
dbCtx
|
||||
.DbSetInsManuali
|
||||
.Add(currRecord);
|
||||
}
|
||||
else
|
||||
{
|
||||
actRec.CodArticolo = currRecord.CodArticolo;
|
||||
actRec.FineStato = currRecord.FineStato;
|
||||
actRec.IdxMacchina = currRecord.IdxMacchina;
|
||||
actRec.IdxTipoEv = currRecord.IdxTipoEv;
|
||||
actRec.Imported = currRecord.Imported;
|
||||
actRec.InizioStato = currRecord.InizioStato;
|
||||
actRec.KeyRichiesta = currRecord.KeyRichiesta;
|
||||
actRec.MatrOpr = currRecord.MatrOpr;
|
||||
actRec.MinProd = currRecord.MinProd;
|
||||
actRec.PzBuoni = currRecord.PzBuoni;
|
||||
actRec.TCiclo = currRecord.TCiclo;
|
||||
dbCtx.Entry(actRec).State = EntityState.Modified;
|
||||
}
|
||||
var res = dbCtx.SaveChanges();
|
||||
fatto = res != 0;
|
||||
}
|
||||
#endif
|
||||
return fatto;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Elenco turni macchina (all)
|
||||
/// </summary>
|
||||
|
||||
@@ -259,41 +259,6 @@ namespace MP.Data.Services
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Elenco parametri validi tab/campo
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<ListValues> ListValuesFilt(string tabName, string fieldName)
|
||||
{
|
||||
string source = "DB";
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
List<ListValues>? result = new List<ListValues>();
|
||||
// cerco in redis...
|
||||
string currKey = $"{redisBaseKey}:ListVal:{tabName}:{fieldName}";
|
||||
RedisValue rawData = redisDb.StringGet(currKey);
|
||||
if (rawData.HasValue)
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<List<ListValues>>($"{rawData}");
|
||||
source = "REDIS";
|
||||
}
|
||||
else
|
||||
{
|
||||
result = dbTabController.ListValuesFilt(tabName, fieldName);
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
redisDb.StringSet(currKey, rawData, UltraLongCache);
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<ListValues>();
|
||||
}
|
||||
sw.Stop();
|
||||
Log.Debug($"ListValuesFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco EVENTI validi x macchina
|
||||
/// </summary>
|
||||
@@ -1079,6 +1044,28 @@ namespace MP.Data.Services
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Chiama stored x congelare i dati giornalieri
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dtCurr"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> InsManFreezeDay(string idxMacchina, DateTime dtCurr)
|
||||
{
|
||||
bool fatto = false;
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
Log.Info($"Inizio InsManFreezeDay | idxMacchina: {idxMacchina}");
|
||||
// salvo
|
||||
fatto = await dbTabController.InsManFreezeDay(idxMacchina, dtCurr);
|
||||
// svuoto cache
|
||||
RedisValue pattern = $"{redisBaseKey}:InsMan:*";
|
||||
await ExecFlushRedisPatternAsync(pattern);
|
||||
sw.Stop();
|
||||
Log.Info($"Fine InsManFreezeDay | idxMacchina: {idxMacchina} | elapsed: {sw.Elapsed.TotalMilliseconds:N2} ms");
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco DTO x plotting seq stati giornaliero
|
||||
/// </summary>
|
||||
@@ -1179,36 +1166,12 @@ namespace MP.Data.Services
|
||||
ValueMax = 1440
|
||||
};
|
||||
result.Add(currRec);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Chiama stored x congelare i dati giornalieri
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dtCurr"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> InsManFreezeDay(string idxMacchina, DateTime dtCurr)
|
||||
{
|
||||
bool fatto = false;
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
Log.Info($"Inizio InsManFreezeDay | idxMacchina: {idxMacchina}");
|
||||
// salvo
|
||||
fatto = await dbTabController.InsManFreezeDay(idxMacchina, dtCurr);
|
||||
// svuoto cache
|
||||
RedisValue pattern = $"{redisBaseKey}:InsMan:*";
|
||||
await ExecFlushRedisPatternAsync(pattern);
|
||||
sw.Stop();
|
||||
Log.Info($"Fine InsManFreezeDay | idxMacchina: {idxMacchina} | elapsed: {sw.Elapsed.TotalMilliseconds:N2} ms");
|
||||
return fatto;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Esegue salvataggio record + svuotamento cache
|
||||
/// </summary>
|
||||
@@ -1308,6 +1271,40 @@ namespace MP.Data.Services
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco parametri validi tab/campo
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<ListValues> ListValuesFilt(string tabName, string fieldName)
|
||||
{
|
||||
string source = "DB";
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
List<ListValues>? result = new List<ListValues>();
|
||||
// cerco in redis...
|
||||
string currKey = $"{redisBaseKey}:ListVal:{tabName}:{fieldName}";
|
||||
RedisValue rawData = redisDb.StringGet(currKey);
|
||||
if (rawData.HasValue)
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<List<ListValues>>($"{rawData}");
|
||||
source = "REDIS";
|
||||
}
|
||||
else
|
||||
{
|
||||
result = dbTabController.ListValuesFilt(tabName, fieldName);
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
redisDb.StringSet(currKey, rawData, UltraLongCache);
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<ListValues>();
|
||||
}
|
||||
sw.Stop();
|
||||
Log.Debug($"ListValuesFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco lotti esterni presenti sul db di ARCA
|
||||
/// </summary>
|
||||
@@ -3444,6 +3441,71 @@ namespace MP.Data.Services
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elimina record + svuotamento cache
|
||||
/// </summary>
|
||||
/// <param name="currRecord"></param>
|
||||
public async Task<bool> TemplateKitDelete(TemplateKitModel currRecord)
|
||||
{
|
||||
bool fatto = false;
|
||||
// salvo
|
||||
fatto = dbTabController.TemplateKitDelete(currRecord);
|
||||
// svuoto cache
|
||||
RedisValue pattern = $"{redisBaseKey}:KitTemplate:*";
|
||||
await ExecFlushRedisPatternAsync(pattern);
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco template da ricerca
|
||||
/// </summary>
|
||||
/// <param name="searchVal"></param>
|
||||
/// <returns></returns>
|
||||
public List<TemplateKitModel> TemplateKitFilt(string searchVal)
|
||||
{
|
||||
string source = "DB";
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
List<TemplateKitModel>? result = new List<TemplateKitModel>();
|
||||
// cerco in redis...
|
||||
string currKey = $"{redisBaseKey}:KitTemplate:{searchVal}";
|
||||
RedisValue rawData = redisDb.StringGet(currKey);
|
||||
if (rawData.HasValue)
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<List<TemplateKitModel>>($"{rawData}");
|
||||
source = "REDIS";
|
||||
}
|
||||
else
|
||||
{
|
||||
result = dbTabController.TemplateKitFilt(searchVal);
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
redisDb.StringSet(currKey, rawData, FastCache);
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<TemplateKitModel>();
|
||||
}
|
||||
sw.Stop();
|
||||
Log.Debug($"TemplateKitFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue salvataggio record + svuotamento cache
|
||||
/// </summary>
|
||||
/// <param name="currRecord"></param>
|
||||
public async Task<bool> TemplateKitUpsert(TemplateKitModel currRecord)
|
||||
{
|
||||
bool fatto = false;
|
||||
// salvo
|
||||
fatto = dbTabController.TemplateKitUpsert(currRecord);
|
||||
// svuoto cache
|
||||
RedisValue pattern = $"{redisBaseKey}:KitTemplate:*";
|
||||
await ExecFlushRedisPatternAsync(pattern);
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Turno macchina
|
||||
/// </summary>
|
||||
@@ -4119,7 +4181,6 @@ namespace MP.Data.Services
|
||||
return redHashMpIO($"SavedTask:{idxMacchina}");
|
||||
}
|
||||
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user