Merge branch 'Release/AddRedisScriptMan_02'
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>6.16.2604.1109</Version>
|
||||
<Version>6.16.2604.2016</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>MP_TAB3</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MAPOSPEC </i>
|
||||
<h4>Versione: 6.16.2604.1109</h4>
|
||||
<h4>Versione: 6.16.2604.2016</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2604.1109
|
||||
6.16.2604.2016
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2604.1109</version>
|
||||
<version>6.16.2604.2016</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
@@ -839,56 +839,18 @@ namespace MP.Data.Controllers
|
||||
public async Task<ODLExpModel> OdlLastByMaccAsync(string idxMacchina)
|
||||
{
|
||||
ODLExpModel answ = new();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
// attenzione: se la stored resituisce una tabella, il primo elemento va recuperato in RAM!!!
|
||||
var dbRes = (await dbCtx.DbSetODLExp
|
||||
.FromSqlRaw("EXEC stp_ODL_getLastByMacchina @IdxMacchina", pIdxMacchina)
|
||||
.AsNoTracking()
|
||||
.ToListAsync()) // Esegue la query e scarica i risultati in memoria
|
||||
.FirstOrDefault(); // Prende il primo elemento dalla lista in RAM
|
||||
answ = dbRes ?? new();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante OdlCurrByMaccAsync{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
/// <summary>
|
||||
/// Elenco ODL data macchina e periodo
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dtStart"></param>
|
||||
/// <param name="dtEnd"></param>
|
||||
/// <returns></returns>
|
||||
public List<ODLExpModel> OdlListByMaccPeriodo(string idxMacchina, DateTime dtStart, DateTime dtEnd)
|
||||
{
|
||||
List<ODLExpModel> dbResult = new List<ODLExpModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var DataFrom = new SqlParameter("@dataFrom", dtStart);
|
||||
var DataTo = new SqlParameter("@dataTo", dtEnd);
|
||||
dbResult = dbCtx
|
||||
.DbSetODLExp
|
||||
.FromSqlRaw("EXEC stp_ODL_getByMacchinaPeriodo @IdxMacchina, @dataFrom, @dataTo", IdxMacchina, DataFrom, DataTo)
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante OdlListByMaccPeriodo{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return dbResult;
|
||||
var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
// attenzione: se la stored resituisce una tabella, il primo elemento va recuperato in RAM!!!
|
||||
var dbRes = (await dbCtx.DbSetODLExp
|
||||
.FromSqlRaw("EXEC stp_ODL_getLastByMacchina @IdxMacchina", pIdxMacchina)
|
||||
.AsNoTracking()
|
||||
.ToListAsync()) // Esegue la query e scarica i risultati in memoria
|
||||
.FirstOrDefault(); // Prende il primo elemento dalla lista in RAM
|
||||
answ = dbRes ?? new();
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -901,45 +863,17 @@ namespace MP.Data.Controllers
|
||||
public async Task<List<ODLExpModel>> OdlListByMaccPeriodoAsync(string idxMacchina, DateTime dtStart, DateTime dtEnd)
|
||||
{
|
||||
List<ODLExpModel> dbResult = new List<ODLExpModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var DataFrom = new SqlParameter("@dataFrom", dtStart);
|
||||
var DataTo = new SqlParameter("@dataTo", dtEnd);
|
||||
dbResult = await dbCtx
|
||||
.DbSetODLExp
|
||||
.FromSqlRaw("EXEC stp_ODL_getByMacchinaPeriodo @IdxMacchina, @dataFrom, @dataTo", IdxMacchina, DataFrom, DataTo)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante OdlListByMaccPeriodoAsync{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
/// <summary>
|
||||
/// Conteggio PzProd Macchina
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public PzProdModel PezziProdMacchina(string idxMacchina)
|
||||
{
|
||||
PzProdModel dbResult = new PzProdModel();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
dbResult = (dbCtx
|
||||
.DbSetPzProd
|
||||
.FromSqlRaw("EXEC stp_PzProd_getByMacchina @IdxMacchina", pIdxMacchina)
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var DataFrom = new SqlParameter("@dataFrom", dtStart);
|
||||
var DataTo = new SqlParameter("@dataTo", dtEnd);
|
||||
dbResult = await dbCtx
|
||||
.DbSetODLExp
|
||||
.FromSqlRaw("EXEC stp_ODL_getByMacchinaPeriodo @IdxMacchina, @dataFrom, @dataTo", IdxMacchina, DataFrom, DataTo)
|
||||
.AsNoTracking()
|
||||
.ToList())
|
||||
.FirstOrDefault(); // recupero da RAM
|
||||
}
|
||||
.ToListAsync();
|
||||
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -951,16 +885,15 @@ namespace MP.Data.Controllers
|
||||
public async Task<PzProdModel> PezziProdMacchinaAsync(string idxMacchina)
|
||||
{
|
||||
PzProdModel dbResult = new PzProdModel();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
dbResult = (await dbCtx
|
||||
.DbSetPzProd
|
||||
.FromSqlRaw("EXEC stp_PzProd_getByMacchina @IdxMacchina", pIdxMacchina)
|
||||
.AsNoTracking()
|
||||
.ToListAsync())
|
||||
.FirstOrDefault(); // recupero da RAM
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
dbResult = (await dbCtx
|
||||
.DbSetPzProd
|
||||
.FromSqlRaw("EXEC stp_PzProd_getByMacchina @IdxMacchina", pIdxMacchina)
|
||||
.AsNoTracking()
|
||||
.ToListAsync())
|
||||
.FirstOrDefault(); // recupero da RAM
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -975,54 +908,21 @@ namespace MP.Data.Controllers
|
||||
public async Task<List<PODLExpModel>> POdlGetByMaccArtAsync(string idxMacchina, string codArticolo, string codGruppo, bool onlyFree)
|
||||
{
|
||||
List<PODLExpModel> dbResult = new List<PODLExpModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var pCodArticolo = new SqlParameter("@CodArticolo", codArticolo);
|
||||
var pCodGruppo = new SqlParameter("@CodGruppo", codGruppo);
|
||||
var pOnlyFree = new SqlParameter("@onlyFree", onlyFree);
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
dbResult = await dbCtx
|
||||
.DbSetPODLExp
|
||||
.FromSqlRaw("EXEC stp_PODL_getByMaccArt @IdxMacchina, @CodArticolo, @CodGruppo, @onlyFree", pIdxMacchina, pCodArticolo, pCodGruppo, pOnlyFree)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
}
|
||||
var pIdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var pCodArticolo = new SqlParameter("@CodArticolo", codArticolo);
|
||||
var pCodGruppo = new SqlParameter("@CodGruppo", codGruppo);
|
||||
var pOnlyFree = new SqlParameter("@onlyFree", onlyFree);
|
||||
|
||||
dbResult = await dbCtx
|
||||
.DbSetPODLExp
|
||||
.FromSqlRaw("EXEC stp_PODL_getByMaccArt @IdxMacchina, @CodArticolo, @CodGruppo, @onlyFree", pIdxMacchina, pCodArticolo, pCodGruppo, pOnlyFree)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua ricalcolo MSE x macchina indicata
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina da confermare</param>
|
||||
/// <param name="maxAgeSec">Num massimo secondi di "vecchiaia" del dato</param>
|
||||
/// <returns></returns>
|
||||
public bool RecalcMse(string idxMacchina, int maxAgeSec)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
var rigaProd = StatoProdMacchina(idxMacchina, DateTime.Now);
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var MaxAgeSec = new SqlParameter("@maxAgeSec ", maxAgeSec);
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
|
||||
var result = dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("EXEC stp_MSE_recalc @maxAgeSec, @idxMacchina ", MaxAgeSec, IdxMacchina);
|
||||
|
||||
// indico eseguito!
|
||||
answ = result > 0;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in RecalcMse:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua ricalcolo MSE x macchina indicata
|
||||
/// </summary>
|
||||
@@ -1031,28 +931,17 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<bool> RecalcMseAsync(string idxMacchina, int maxAgeSec)
|
||||
{
|
||||
bool answ = false;
|
||||
try
|
||||
{
|
||||
var rigaProd = await StatoProdMacchinaAsync(idxMacchina, DateTime.Now);
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var MaxAgeSec = new SqlParameter("@maxAgeSec ", maxAgeSec);
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var result = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("EXEC stp_MSE_recalc @maxAgeSec, @idxMacchina ", MaxAgeSec, IdxMacchina);
|
||||
var rigaProd = await StatoProdMacchinaAsync(idxMacchina, DateTime.Now);
|
||||
var MaxAgeSec = new SqlParameter("@maxAgeSec ", maxAgeSec);
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", idxMacchina);
|
||||
|
||||
// indico eseguito!
|
||||
answ = result > 0;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in RecalcMseAsync:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
var result = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("EXEC stp_MSE_recalc @maxAgeSec, @idxMacchina ", MaxAgeSec, IdxMacchina);
|
||||
|
||||
return result != 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1064,23 +953,20 @@ namespace MP.Data.Controllers
|
||||
/// <param name="note"></param>
|
||||
/// <param name="dataOra"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> RegControlliInsert(string idxMacchina, int matrOpr, bool esitoOk, string note, DateTime dataOra)
|
||||
public async Task<bool> RegControlliInsertAsync(string idxMacchina, int matrOpr, bool esitoOk, string note, DateTime dataOra)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", matrOpr);
|
||||
var EsitoOk = new SqlParameter("@EsitoOk", esitoOk);
|
||||
var Note = new SqlParameter("@Note", note);
|
||||
var DataOra = new SqlParameter("@DataOra", dataOra);
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var result = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("EXEC stp_RC_insert @IdxMacchina, @MatrOpr, @EsitoOk, @Note, @DataOra", IdxMacc, MatrOpr, EsitoOk, Note, DataOra);
|
||||
fatto = result != 0;
|
||||
}
|
||||
return fatto;
|
||||
var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", matrOpr);
|
||||
var EsitoOk = new SqlParameter("@EsitoOk", esitoOk);
|
||||
var Note = new SqlParameter("@Note", note);
|
||||
var DataOra = new SqlParameter("@DataOra", dataOra);
|
||||
|
||||
var result = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("EXEC stp_RC_insert @IdxMacchina, @MatrOpr, @EsitoOk, @Note, @DataOra", IdxMacc, MatrOpr, EsitoOk, Note, DataOra);
|
||||
return result != 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1088,24 +974,21 @@ namespace MP.Data.Controllers
|
||||
/// </summary>
|
||||
/// <param name="newRec"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> RegDichiarInsert(RegistroDichiarazioniModel newRec)
|
||||
public async Task<bool> RegDichiarInsertAsync(RegistroDichiarazioniModel newRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var TagCode = new SqlParameter("@TagCode", newRec.TagCode);
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", newRec.IdxMacchina);
|
||||
var DtRec = new SqlParameter("@DtRec", newRec.DtRec);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", newRec.MatrOpr);
|
||||
var ValString = new SqlParameter("@ValString", newRec.ValString);
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var result = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("exec dbo.stp_DD_insertQuery @TagCode, @IdxMacchina, @DtRec, @MatrOpr, @ValString", TagCode, IdxMacchina, DtRec, MatrOpr, ValString);
|
||||
// indico eseguito!
|
||||
fatto = result > 0;
|
||||
}
|
||||
return fatto;
|
||||
var TagCode = new SqlParameter("@TagCode", newRec.TagCode);
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", newRec.IdxMacchina);
|
||||
var DtRec = new SqlParameter("@DtRec", newRec.DtRec);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", newRec.MatrOpr);
|
||||
var ValString = new SqlParameter("@ValString", newRec.ValString);
|
||||
|
||||
var result = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("exec dbo.stp_DD_insertQuery @TagCode, @IdxMacchina, @DtRec, @MatrOpr, @ValString", TagCode, IdxMacchina, DtRec, MatrOpr, ValString);
|
||||
|
||||
return result != 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1113,24 +996,20 @@ namespace MP.Data.Controllers
|
||||
/// </summary>
|
||||
/// <param name="newRec"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> RegDichiarUpdate(RegistroDichiarazioniModel newRec)
|
||||
public async Task<bool> RegDichiarUpdateAsync(RegistroDichiarazioniModel newRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var Original_IdxDich = new SqlParameter("@Original_IdxDich", newRec.IdxDich);
|
||||
var DtRec = new SqlParameter("@DtRec", newRec.DtRec);
|
||||
var TagCode = new SqlParameter("@TagCode", newRec.TagCode);
|
||||
var ValString = new SqlParameter("@ValString", newRec.ValString);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", newRec.MatrOpr);
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var result = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("exec dbo.stp_DD_updateQuery @Original_IdxDich, @DtRec, @TagCode, @ValString, @MatrOpr", Original_IdxDich, DtRec, TagCode, ValString, MatrOpr);
|
||||
// indico eseguito!
|
||||
fatto = result > 0;
|
||||
}
|
||||
return fatto;
|
||||
var Original_IdxDich = new SqlParameter("@Original_IdxDich", newRec.IdxDich);
|
||||
var DtRec = new SqlParameter("@DtRec", newRec.DtRec);
|
||||
var TagCode = new SqlParameter("@TagCode", newRec.TagCode);
|
||||
var ValString = new SqlParameter("@ValString", newRec.ValString);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", newRec.MatrOpr);
|
||||
var result = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("exec dbo.stp_DD_updateQuery @Original_IdxDich, @DtRec, @TagCode, @ValString, @MatrOpr", Original_IdxDich, DtRec, TagCode, ValString, MatrOpr);
|
||||
|
||||
return result != 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1138,28 +1017,23 @@ namespace MP.Data.Controllers
|
||||
/// </summary>
|
||||
/// <param name="newRec"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> RegScartiInsert(RegistroScartiModel newRec)
|
||||
public async Task<bool> RegScartiInsertAsync(RegistroScartiModel newRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", newRec.IdxMacchina);
|
||||
var DataOra = new SqlParameter("@DataOra", newRec.DataOra);
|
||||
var Causale = new SqlParameter("@Causale", newRec.Causale);
|
||||
var Qta = new SqlParameter("@Qta", newRec.Qta);
|
||||
var Note = new SqlParameter("@Note", newRec.Note);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", newRec.MatrOpr);
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var result = await dbCtx
|
||||
.DbSetRegWithCheck
|
||||
.FromSqlRaw("exec dbo.stp_RS_Insert_withCheck @idxMacchina, @DataOra, @Causale, @Qta, @Note, @MatrOpr", IdxMacchina, DataOra, Causale, Qta, Note, MatrOpr)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
// indico eseguito!
|
||||
// -1 = restituisce una select
|
||||
fatto = result.Count > 0;
|
||||
}
|
||||
return fatto;
|
||||
var IdxMacchina = new SqlParameter("@idxMacchina", newRec.IdxMacchina);
|
||||
var DataOra = new SqlParameter("@DataOra", newRec.DataOra);
|
||||
var Causale = new SqlParameter("@Causale", newRec.Causale);
|
||||
var Qta = new SqlParameter("@Qta", newRec.Qta);
|
||||
var Note = new SqlParameter("@Note", newRec.Note);
|
||||
var MatrOpr = new SqlParameter("@MatrOpr", newRec.MatrOpr);
|
||||
|
||||
var result = await dbCtx
|
||||
.DbSetRegWithCheck
|
||||
.FromSqlRaw("exec dbo.stp_RS_Insert_withCheck @idxMacchina, @DataOra, @Causale, @Qta, @Note, @MatrOpr", IdxMacchina, DataOra, Causale, Qta, Note, MatrOpr)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
return result.Count != 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1169,15 +1043,13 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<bool> RemRebootLogAddAsync(RemoteRebootLogModel newRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var dbResult = dbCtx
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var dbResult = dbCtx
|
||||
.DbSetRemRebLog
|
||||
.Add(newRec);
|
||||
fatto = await dbCtx.SaveChangesAsync() > 0;
|
||||
}
|
||||
return fatto;
|
||||
|
||||
return await dbCtx.SaveChangesAsync() > 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1186,15 +1058,13 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<List<RemoteRebootLogModel>> RemRebootLogGetAllAsync()
|
||||
{
|
||||
List<RemoteRebootLogModel> dbResult = new List<RemoteRebootLogModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = await dbCtx
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var dbResult = await dbCtx
|
||||
.DbSetRemRebLog
|
||||
.AsNoTracking()
|
||||
.OrderByDescending(x => x.IdxReboot)
|
||||
.ToListAsync();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -1204,15 +1074,12 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<List<RemoteRebootLogModel>> RemRebootLogGetLastAsync()
|
||||
{
|
||||
List<RemoteRebootLogModel> dbResult = new List<RemoteRebootLogModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = await dbCtx
|
||||
.DbSetRemRebLog
|
||||
.FromSqlRaw("EXEC stp_RRL_getLast")
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
var dbResult = await dbCtx
|
||||
.DbSetRemRebLog
|
||||
.FromSqlRaw("EXEC stp_RRL_getLast")
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -1222,66 +1089,14 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<bool> RemRebootLogKeepLastAsync(int num2keep)
|
||||
{
|
||||
bool answ = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var Num2keep = new SqlParameter("@num2keep", num2keep);
|
||||
var dbResult = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("exec dbo.stp_RRL_KeepLatest @num2keep", Num2keep);
|
||||
answ = dbResult > 0;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
/// <summary>
|
||||
/// Annulla modifiche su una specifica entity (cancel update)
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
public bool RollBackEntity(object item)
|
||||
{
|
||||
bool answ = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
if (dbCtx.Entry(item).State == Microsoft.EntityFrameworkCore.EntityState.Deleted || dbCtx.Entry(item).State == Microsoft.EntityFrameworkCore.EntityState.Modified)
|
||||
{
|
||||
dbCtx.Entry(item).Reload();
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione in rollBackEntity{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
var Num2keep = new SqlParameter("@num2keep", num2keep);
|
||||
var dbResult = await dbCtx
|
||||
.Database
|
||||
.ExecuteSqlRawAsync("exec dbo.stp_RRL_KeepLatest @num2keep", Num2keep);
|
||||
|
||||
/// <summary>
|
||||
/// Aggiunta record SignalLog
|
||||
/// </summary>
|
||||
/// <param name="newRec"></param>
|
||||
/// <returns></returns>
|
||||
public bool SignalLogInsert(SignalLogModel newRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var currRec = dbCtx
|
||||
.DbSetSignalLog
|
||||
.Add(newRec);
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante SignalLogInsert{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
return dbResult != 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1291,44 +1106,13 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<bool> SignalLogInsertAsync(SignalLogModel newRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var currRec = dbCtx
|
||||
.DbSetSignalLog
|
||||
.Add(newRec);
|
||||
await dbCtx.SaveChangesAsync();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante SignalLogInsertAsync{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
/// <summary>
|
||||
/// Tabella state machine eventi 2 stati data macchina e tipo evento
|
||||
/// </summary>
|
||||
/// <param name="idxTipo"></param>
|
||||
/// <returns></returns>
|
||||
public List<TransizioneStatiModel> SMES_getHwTransitions(string idxMacchina, int idxTipo)
|
||||
{
|
||||
List<TransizioneStatiModel> dbResult = new List<TransizioneStatiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var IdxTipo = new SqlParameter("@IdxTipo", idxTipo);
|
||||
dbResult = dbCtx
|
||||
.DbSetSMES
|
||||
.FromSqlRaw("exec dbo.stp_TS_getByIdxMacchIdxTipoEv @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo)
|
||||
.AsNoTracking()
|
||||
.AsEnumerable()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
var currRec = dbCtx
|
||||
.DbSetSignalLog
|
||||
.Add(newRec);
|
||||
|
||||
return await dbCtx.SaveChangesAsync() > 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1338,39 +1122,16 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<List<TransizioneStatiModel>> SMES_getHwTransitionsAsync(string idxMacchina, int idxTipo)
|
||||
{
|
||||
List<TransizioneStatiModel> dbResult = new List<TransizioneStatiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var IdxTipo = new SqlParameter("@IdxTipo", idxTipo);
|
||||
dbResult = await dbCtx
|
||||
.DbSetSMES
|
||||
.FromSqlRaw("exec dbo.stp_TS_getByIdxMacchIdxTipoEv @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var IdxTipo = new SqlParameter("@IdxTipo", idxTipo);
|
||||
var dbResult = await dbCtx
|
||||
.DbSetSMES
|
||||
.FromSqlRaw("exec dbo.stp_TS_getByIdxMacchIdxTipoEv @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
|
||||
/// <summary>
|
||||
/// Tabella state machine eventi 2 stati data macchina e tipo evento
|
||||
/// </summary>
|
||||
/// <param name="idxTipo"></param>
|
||||
/// <returns></returns>
|
||||
public List<TransizioneStatiModel> SMES_getUserForced(string idxMacchina, int idxTipo)
|
||||
{
|
||||
List<TransizioneStatiModel> dbResult = new List<TransizioneStatiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var IdxTipo = new SqlParameter("@IdxTipo", idxTipo);
|
||||
dbResult = dbCtx
|
||||
.DbSetSMES
|
||||
.FromSqlRaw("exec dbo.stp_TS_getUserForcedTrans @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo)
|
||||
.AsNoTracking()
|
||||
.AsEnumerable()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -1381,17 +1142,16 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<List<TransizioneStatiModel>> SMES_getUserForcedAsync(string idxMacchina, int idxTipo)
|
||||
{
|
||||
List<TransizioneStatiModel> dbResult = new List<TransizioneStatiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var IdxTipo = new SqlParameter("@IdxTipo", idxTipo);
|
||||
dbResult = await dbCtx
|
||||
.DbSetSMES
|
||||
.FromSqlRaw("exec dbo.stp_TS_getUserForcedTrans @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var IdxTipo = new SqlParameter("@IdxTipo", idxTipo);
|
||||
var dbResult = await dbCtx
|
||||
.DbSetSMES
|
||||
.FromSqlRaw("exec dbo.stp_TS_getUserForcedTrans @IdxMacchina, @IdxTipo", IdxMacchina, IdxTipo)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -1421,41 +1181,15 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<List<TransizioneIngressiModel>> StateMachineIngressiAsync(int idxFam)
|
||||
{
|
||||
List<TransizioneIngressiModel> dbResult = new List<TransizioneIngressiModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxFamIn = new SqlParameter("@IdxFamigliaIngresso", idxFam);
|
||||
dbResult = await dbCtx
|
||||
.DbSetSMI
|
||||
.FromSqlRaw("exec dbo.stp_TRI_getByIdxFamIng @IdxFamigliaIngresso", IdxFamIn)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var IdxFamIn = new SqlParameter("@IdxFamigliaIngresso", idxFam);
|
||||
var dbResult = await dbCtx
|
||||
.DbSetSMI
|
||||
.FromSqlRaw("exec dbo.stp_TRI_getByIdxFamIng @IdxFamigliaIngresso", IdxFamIn)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
|
||||
/// <summary>
|
||||
/// Stato prod macchina (completo)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dtReq"></param>
|
||||
/// <returns></returns>
|
||||
public StatoProdModel StatoProdMacchina(string idxMacchina, DateTime dtReq)
|
||||
{
|
||||
StatoProdModel dbResult = new StatoProdModel();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var DataOra = new SqlParameter("@DataOra ", dtReq);
|
||||
var rawData = dbCtx
|
||||
.DbSetStatoProd
|
||||
.FromSqlRaw("EXEC stp_StatoProd_getByMacchina @IdxMacchina, @DataOra ", IdxMacchina, DataOra)
|
||||
.AsNoTracking()
|
||||
.AsEnumerable()
|
||||
.ToList();
|
||||
dbResult = rawData
|
||||
.FirstOrDefault();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -1467,36 +1201,17 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<StatoProdModel> StatoProdMacchinaAsync(string idxMacchina, DateTime dtReq)
|
||||
{
|
||||
StatoProdModel dbResult = new StatoProdModel();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var DataOra = new SqlParameter("@DataOra ", dtReq);
|
||||
dbResult = (await dbCtx
|
||||
.DbSetStatoProd
|
||||
.FromSqlRaw("EXEC stp_StatoProd_getByMacchina @IdxMacchina, @DataOra ", IdxMacchina, DataOra)
|
||||
.AsNoTracking()
|
||||
.ToListAsync())
|
||||
.FirstOrDefault();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
|
||||
var DataOra = new SqlParameter("@DataOra ", dtReq);
|
||||
var dbResult = (await dbCtx
|
||||
.DbSetStatoProd
|
||||
.FromSqlRaw("EXEC stp_StatoProd_getByMacchina @IdxMacchina, @DataOra ", IdxMacchina, DataOra)
|
||||
.AsNoTracking()
|
||||
.ToListAsync())
|
||||
.FirstOrDefault();
|
||||
|
||||
/// <summary>
|
||||
/// Intera vista v_MSFD
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<VMSFDModel> VMSFDGetAll()
|
||||
{
|
||||
List<VMSFDModel> dbResult = new List<VMSFDModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
dbResult = dbCtx
|
||||
.DbSetMSFD
|
||||
.AsNoTracking()
|
||||
.OrderBy(x => x.IdxMacchina)
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -1506,43 +1221,14 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<List<VMSFDModel>> VMSFDGetAllAsync()
|
||||
{
|
||||
List<VMSFDModel> dbResult = new List<VMSFDModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
dbResult = await dbCtx
|
||||
.DbSetMSFD
|
||||
.AsNoTracking()
|
||||
.OrderBy(x => x.IdxMacchina)
|
||||
.ToListAsync();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
}
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
/// <summary>
|
||||
/// Vista v_MSFD x singola macchina (da stored) - singolo record
|
||||
/// </summary>
|
||||
/// <param name="idxMacc"></param>
|
||||
/// <returns></returns>
|
||||
public List<VMSFDModel> VMSFDGetByMacc(string idxMacc)
|
||||
{
|
||||
List<VMSFDModel> dbResult = new List<VMSFDModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc);
|
||||
var dbResult = await dbCtx
|
||||
.DbSetMSFD
|
||||
.AsNoTracking()
|
||||
.OrderBy(x => x.IdxMacchina)
|
||||
.ToListAsync();
|
||||
|
||||
dbResult = dbCtx
|
||||
.DbSetMSFD
|
||||
.FromSqlRaw("exec dbo.stp_MSFD_getMacc @IdxMacchina", IdxMacchina)
|
||||
.AsNoTracking()
|
||||
.AsEnumerable()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -1553,39 +1239,16 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<VMSFDModel?> VMSFDGetByMaccAsync(string idxMacc)
|
||||
{
|
||||
VMSFDModel? dbResult = null;
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc);
|
||||
dbResult = (await dbCtx
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc);
|
||||
var dbResult = (await dbCtx
|
||||
.DbSetMSFD
|
||||
.FromSqlRaw("exec dbo.stp_MSFD_getMacc @IdxMacchina", IdxMacchina)
|
||||
.AsNoTracking()
|
||||
.ToListAsync())
|
||||
.FirstOrDefault();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Vista v_MSFD delle machine MULTI filtrato x macchina (da stored)
|
||||
/// </summary>
|
||||
/// <param name="idxMacc"></param>
|
||||
/// <returns></returns>
|
||||
public List<VMSFDModel> VMSFDGetMultiByMacc(string idxMacc)
|
||||
{
|
||||
List<VMSFDModel> dbResult = new List<VMSFDModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc);
|
||||
|
||||
dbResult = dbCtx
|
||||
.DbSetMSFD
|
||||
.FromSqlRaw("exec dbo.stp_MSFD_getMulti @IdxMacchina", IdxMacchina)
|
||||
.AsNoTracking()
|
||||
.AsEnumerable()
|
||||
.ToList();
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
@@ -1596,17 +1259,16 @@ namespace MP.Data.Controllers
|
||||
/// <returns></returns>
|
||||
public async Task<List<VMSFDModel>> VMSFDGetMultiByMaccAsync(string idxMacc)
|
||||
{
|
||||
List<VMSFDModel> dbResult = new List<VMSFDModel>();
|
||||
using (var dbCtx = new MoonProContext(_configuration))
|
||||
{
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc);
|
||||
using var dbCtx = new MoonProContext(_configuration);
|
||||
|
||||
dbResult = await dbCtx
|
||||
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacc);
|
||||
|
||||
var dbResult = await dbCtx
|
||||
.DbSetMSFD
|
||||
.FromSqlRaw("exec dbo.stp_MSFD_getMulti @IdxMacchina", IdxMacchina)
|
||||
.AsNoTracking()
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
|
||||
@@ -2581,7 +2581,7 @@ namespace MP.Data.Services
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string logMsg = $"Eccezione in RegControlliInsert | macchina: {idxMacchina} | DataOra: {dataOra} | MatrOpr: {matrOpr} | Qta {esitoOk} | Note: {note}{Environment.NewLine}{exc}";
|
||||
string logMsg = $"Eccezione in RegControlliInsertAsync | macchina: {idxMacchina} | DataOra: {dataOra} | MatrOpr: {matrOpr} | Qta {esitoOk} | Note: {note}{Environment.NewLine}{exc}";
|
||||
Log.Error(logMsg);
|
||||
}
|
||||
return answ;
|
||||
@@ -2696,7 +2696,7 @@ namespace MP.Data.Services
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string logMsg = $"Eccezione in RegDichiarInsert | macchina: {newRec.IdxMacchina} | DtRec: {newRec.DtRec} | TagCode: {newRec.TagCode} | MatrOpr: {newRec.MatrOpr} | ValString {newRec.ValString}{Environment.NewLine}{exc}";
|
||||
string logMsg = $"Eccezione in RegDichiarInsertAsync | macchina: {newRec.IdxMacchina} | DtRec: {newRec.DtRec} | TagCode: {newRec.TagCode} | MatrOpr: {newRec.MatrOpr} | ValString {newRec.ValString}{Environment.NewLine}{exc}";
|
||||
Log.Error(logMsg);
|
||||
}
|
||||
return answ;
|
||||
@@ -2719,7 +2719,7 @@ namespace MP.Data.Services
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string logMsg = $"Eccezione in RegDichiarUpdate | macchina: {newRec.IdxMacchina} | DtRec: {newRec.DtRec} | TagCode: {newRec.TagCode} | MatrOpr: {newRec.MatrOpr} | ValString {newRec.ValString}{Environment.NewLine}{exc}";
|
||||
string logMsg = $"Eccezione in RegDichiarUpdateAsync | macchina: {newRec.IdxMacchina} | DtRec: {newRec.DtRec} | TagCode: {newRec.TagCode} | MatrOpr: {newRec.MatrOpr} | ValString {newRec.ValString}{Environment.NewLine}{exc}";
|
||||
Log.Error(logMsg);
|
||||
}
|
||||
return answ;
|
||||
@@ -2783,7 +2783,7 @@ namespace MP.Data.Services
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
string logMsg = $"Eccezione in RegScartiInsert | macchina: {newRec.IdxMacchina} | DataOra: {newRec.DataOra} | Causale: {newRec.Causale} | MatrOpr: {newRec.MatrOpr} | Qta {newRec.Qta} | Note: {newRec.Note}{Environment.NewLine}{exc}";
|
||||
string logMsg = $"Eccezione in RegScartiInsertAsync | macchina: {newRec.IdxMacchina} | DataOra: {newRec.DataOra} | Causale: {newRec.Causale} | MatrOpr: {newRec.MatrOpr} | Qta {newRec.Qta} | Note: {newRec.Note}{Environment.NewLine}{exc}";
|
||||
Log.Error(logMsg);
|
||||
}
|
||||
return answ;
|
||||
@@ -2902,71 +2902,64 @@ namespace MP.Data.Services
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Dictionary<string, string>> resetDatiMacchina(string idxMacchina)
|
||||
public async Task<Dictionary<string, string>> ResetDatiMacchinaAsync(string idxMacchina)
|
||||
{
|
||||
Dictionary<string, string> answ = new Dictionary<string, string>();
|
||||
|
||||
// verifico il timeout che cambia a seconda che sia vero o falso insEnabled...
|
||||
int tOutShort = 0;
|
||||
int tOutLong = 0;
|
||||
ConfigGetVal("TmOut.MS.S", ref tOutShort);
|
||||
ConfigGetVal("TmOut.MS.L", ref tOutLong);
|
||||
int redDtMacTOut = tOutLong;
|
||||
|
||||
// inizio con un bel reset...
|
||||
string currKey = $"{redisBaseKey}:MSFD";
|
||||
await FlushCache(currKey);
|
||||
var tabMSFD = await VMSFDGetByMacc(idxMacchina);
|
||||
if (tabMSFD != null && tabMSFD.Count > 0)
|
||||
var rigaMSFD = await VMSFDGetByMaccAsync(idxMacchina);
|
||||
if (rigaMSFD != null)
|
||||
{
|
||||
var rigaMSFD = tabMSFD.FirstOrDefault();
|
||||
// ora provo a compilare...
|
||||
try
|
||||
{
|
||||
// salvo 1:1 i valori... STATO
|
||||
answ.Add("IdxMicroStato", $"{rigaMSFD.IdxMicroStato}");
|
||||
answ.Add("IdxStato", $"{rigaMSFD.IdxStato}");
|
||||
answ.Add("CodArticolo", $"{rigaMSFD.CodArticolo}");
|
||||
answ.Add("insEnabled", $"{rigaMSFD.InsEnabled}");
|
||||
answ.Add("sLogEnabled", $"{rigaMSFD.SLogEnabled}");
|
||||
answ.Add("pallet", $"{rigaMSFD.Pallet}");
|
||||
answ.Add("CodArticolo_A", $"{rigaMSFD.CodArticoloA}");
|
||||
answ.Add("CodArticolo_B", $"{rigaMSFD.CodArticoloB}");
|
||||
answ.Add("TempoCicloBase", $"{rigaMSFD.TempoCicloBase}");
|
||||
answ.Add("PzPalletProd", $"{rigaMSFD.PzPalletProd}");
|
||||
answ.Add("MatrOpr", $"{rigaMSFD.MatrOpr}");
|
||||
answ.Add("lastVal", $"{rigaMSFD.LastVal}");
|
||||
answ.Add("TCBase", $"{rigaMSFD.TempoCicloBase}");
|
||||
// salvo 1:1 i valori... STATO
|
||||
answ.Add("IdxMicroStato", $"{rigaMSFD.IdxMicroStato}");
|
||||
answ.Add("IdxStato", $"{rigaMSFD.IdxStato}");
|
||||
answ.Add("CodArticolo", $"{rigaMSFD.CodArticolo}");
|
||||
answ.Add("insEnabled", $"{rigaMSFD.InsEnabled}");
|
||||
answ.Add("sLogEnabled", $"{rigaMSFD.SLogEnabled}");
|
||||
answ.Add("pallet", $"{rigaMSFD.Pallet}");
|
||||
answ.Add("CodArticolo_A", $"{rigaMSFD.CodArticoloA}");
|
||||
answ.Add("CodArticolo_B", $"{rigaMSFD.CodArticoloB}");
|
||||
answ.Add("TempoCicloBase", $"{rigaMSFD.TempoCicloBase}");
|
||||
answ.Add("PzPalletProd", $"{rigaMSFD.PzPalletProd}");
|
||||
answ.Add("MatrOpr", $"{rigaMSFD.MatrOpr}");
|
||||
answ.Add("lastVal", $"{rigaMSFD.LastVal}");
|
||||
answ.Add("TCBase", $"{rigaMSFD.TempoCicloBase}");
|
||||
|
||||
//...e SETUP
|
||||
answ.Add("CodMacc", rigaMSFD.Codmacchina);
|
||||
answ.Add("IdxFamIn", $"{rigaMSFD.IdxFamigliaIngresso}");
|
||||
answ.Add("Multi", $"{rigaMSFD.Multi}");
|
||||
answ.Add("BitFilt", $"{rigaMSFD.BitFilt}");
|
||||
answ.Add("MaxVal", $"{rigaMSFD.MaxVal}");
|
||||
answ.Add("BSR", $"{rigaMSFD.Bsr}");
|
||||
answ.Add("ExplodeBit", $"{rigaMSFD.ExplodeBit}");
|
||||
answ.Add("NumBit", $"{rigaMSFD.NumBit}");
|
||||
answ.Add("IdxFamMacc", $"{rigaMSFD.IdxFamiglia}");
|
||||
answ.Add("simplePallet", $"{rigaMSFD.SimplePallet}");
|
||||
answ.Add("palletChange", $"{rigaMSFD.PalletChange}");
|
||||
// cerco dati master/slave...
|
||||
var macSlave = await Macchine2Slave();
|
||||
var mastList = macSlave
|
||||
.Where(x => x.IdxMacchina.Equals(idxMacchina, StringComparison.InvariantCultureIgnoreCase))
|
||||
.ToList();
|
||||
var slaveList = macSlave
|
||||
.Where(x => x.IdxMacchinaSlave.Equals(idxMacchina, StringComparison.InvariantCultureIgnoreCase))
|
||||
.ToList();
|
||||
//...e SETUP
|
||||
answ.Add("CodMacc", rigaMSFD.Codmacchina);
|
||||
answ.Add("IdxFamIn", $"{rigaMSFD.IdxFamigliaIngresso}");
|
||||
answ.Add("Multi", $"{rigaMSFD.Multi}");
|
||||
answ.Add("BitFilt", $"{rigaMSFD.BitFilt}");
|
||||
answ.Add("MaxVal", $"{rigaMSFD.MaxVal}");
|
||||
answ.Add("BSR", $"{rigaMSFD.Bsr}");
|
||||
answ.Add("ExplodeBit", $"{rigaMSFD.ExplodeBit}");
|
||||
answ.Add("NumBit", $"{rigaMSFD.NumBit}");
|
||||
answ.Add("IdxFamMacc", $"{rigaMSFD.IdxFamiglia}");
|
||||
answ.Add("simplePallet", $"{rigaMSFD.SimplePallet}");
|
||||
answ.Add("palletChange", $"{rigaMSFD.PalletChange}");
|
||||
|
||||
string isMaster = mastList.Count > 0 ? "1" : "0";
|
||||
string isSlave = slaveList.Count > 0 ? "1" : "0";
|
||||
answ.Add("Master", isMaster);
|
||||
answ.Add("Slave", isSlave);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Errore in compilazione dati MSFD:{Environment.NewLine}{exc}");
|
||||
}
|
||||
// cerco dati master/slave...
|
||||
var macSlave = await Macchine2Slave();
|
||||
var mastList = macSlave
|
||||
.Where(x => x.IdxMacchina.Equals(idxMacchina, StringComparison.InvariantCultureIgnoreCase))
|
||||
.ToList();
|
||||
var slaveList = macSlave
|
||||
.Where(x => x.IdxMacchinaSlave.Equals(idxMacchina, StringComparison.InvariantCultureIgnoreCase))
|
||||
.ToList();
|
||||
string isMaster = mastList.Count > 0 ? "1" : "0";
|
||||
string isSlave = slaveList.Count > 0 ? "1" : "0";
|
||||
answ.Add("Master", isMaster);
|
||||
answ.Add("Slave", isSlave);
|
||||
|
||||
// verifico il timeout che cambia a seconda che sia vero o falso insEnabled...
|
||||
int tOutShort = 0;
|
||||
int tOutLong = 0;
|
||||
ConfigGetVal("TmOut.MS.S", ref tOutShort);
|
||||
ConfigGetVal("TmOut.MS.L", ref tOutLong);
|
||||
int redDtMacTOut = tOutLong;
|
||||
try
|
||||
{
|
||||
redDtMacTOut = (answ["insEnabled"].ToLower() == "true") ? tOutShort : tOutLong;
|
||||
@@ -3014,7 +3007,7 @@ namespace MP.Data.Services
|
||||
};
|
||||
var result = dbTabController.MicroStatoMacchinaUpsert(newRecMS);
|
||||
// reset in _redisConn
|
||||
await resetDatiMacchina(idxMacchina);
|
||||
await ResetDatiMacchinaAsync(idxMacchina);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -3625,7 +3618,7 @@ namespace MP.Data.Services
|
||||
}
|
||||
else
|
||||
{
|
||||
result = dbIocController.VMSFDGetAll();
|
||||
result = await dbIocController.VMSFDGetAllAsync();
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
await _redisDb.StringSetAsync(currKey, rawData, UltraFastCache);
|
||||
@@ -3644,35 +3637,35 @@ namespace MP.Data.Services
|
||||
/// </summary>
|
||||
/// <param name="idxMacc"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<VMSFDModel>> VMSFDGetByMacc(string idxMacc)
|
||||
public async Task<VMSFDModel?> VMSFDGetByMaccAsync(string idxMacc)
|
||||
{
|
||||
// setup parametri costanti
|
||||
string source = "DB";
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
List<VMSFDModel>? result = new List<VMSFDModel>();
|
||||
VMSFDModel? result = null;
|
||||
// cerco in _redisConn...
|
||||
string currKey = $"{redisBaseKey}:MSFD:MACCH:{idxMacc}";
|
||||
RedisValue rawData = await _redisDb.StringGetAsync(currKey);
|
||||
//if (!string.IsNullOrEmpty($"{rawData}"))
|
||||
if (rawData.HasValue)
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<List<VMSFDModel>>($"{rawData}");
|
||||
result = JsonConvert.DeserializeObject<VMSFDModel>($"{rawData}");
|
||||
source = "REDIS";
|
||||
}
|
||||
else
|
||||
{
|
||||
result = dbIocController.VMSFDGetByMacc(idxMacc);
|
||||
result = await dbIocController.VMSFDGetByMaccAsync(idxMacc);
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
await _redisDb.StringSetAsync(currKey, rawData, UltraFastCache);
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new List<VMSFDModel>();
|
||||
result = new();
|
||||
}
|
||||
sw.Stop();
|
||||
Log.Debug($"VMSFDGetByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms");
|
||||
Log.Debug($"VMSFDGetByMaccAsync | {source} | {sw.Elapsed.TotalMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -3699,7 +3692,7 @@ namespace MP.Data.Services
|
||||
}
|
||||
else
|
||||
{
|
||||
result = dbIocController.VMSFDGetMultiByMacc(idxMacc);
|
||||
result = await dbIocController.VMSFDGetMultiByMaccAsync(idxMacc);
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
await _redisDb.StringSetAsync(currKey, rawData, LongCache);
|
||||
|
||||
@@ -99,7 +99,7 @@ namespace MP.IOC.Controllers
|
||||
/// api/Bench/FindSMI?id=60&idxMS=3&valore=1 </summary> <param name="id"></param> <param
|
||||
/// name="idxMS"></param> <param name="valore"></param> <returns></returns>
|
||||
[HttpGet("FindSMI")]
|
||||
public string FindSMI(int? id, int? idxMS, int? valore)
|
||||
public async Task<string> FindSMI(int? id, int? idxMS, int? valore)
|
||||
{
|
||||
string answ = "ND";
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
@@ -126,7 +126,7 @@ namespace MP.IOC.Controllers
|
||||
if (!trovato)
|
||||
{
|
||||
// ricarico tabella!
|
||||
KeyValuePair<string, string>[] valori = DService.StateMachInByKey(idxFamIn);
|
||||
KeyValuePair<string, string>[] valori = await DService.StateMachInByKeyAsync(idxFamIn);
|
||||
answ = string.Format("Ricaricata SMI per famiglia {0}<br/>", fiHASH);
|
||||
}
|
||||
|
||||
@@ -318,7 +318,7 @@ namespace MP.IOC.Controllers
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("StateMachineIn")]
|
||||
public string StateMachineIn(int? id)
|
||||
public async Task<string> StateMachineIn(int? id)
|
||||
{
|
||||
string answ = "ND";
|
||||
long splitTime = 0;
|
||||
@@ -335,7 +335,7 @@ namespace MP.IOC.Controllers
|
||||
answ = "";
|
||||
try
|
||||
{
|
||||
KeyValuePair<string, string>[] valori = DService.StateMachInByKey(idxFamIn);
|
||||
KeyValuePair<string, string>[] valori = await DService.StateMachInByKeyAsync(idxFamIn);
|
||||
splitTime = stopWatch.ElapsedMilliseconds;
|
||||
foreach (var item in valori)
|
||||
{
|
||||
|
||||
@@ -2431,37 +2431,6 @@ namespace MP.IOC.Data
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restitusice elenco KVP
|
||||
/// currKey: IdxMacchina
|
||||
/// value: IdxFamigliaIngresso
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public KeyValuePair<string, string>[] mTabMSMI(string idxMacchina)
|
||||
{
|
||||
// hard coded dimensione vettore DatiMacchine
|
||||
KeyValuePair<string, string>[] answ = new KeyValuePair<string, string>[1];
|
||||
// iniziualizzo con un valore... 0/0
|
||||
answ[0] = new KeyValuePair<string, string>("0", "0");
|
||||
// ORA recupero da memoria redis...
|
||||
try
|
||||
{
|
||||
var currHash = Utils.RedKeyMsmi(idxMacchina);
|
||||
answ = RedisGetHash(currHash);
|
||||
// se è vuoto... leggo da DB e popolo!
|
||||
if (answ.Length == 0)
|
||||
{
|
||||
answ = resetMSMI(idxMacchina);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Errore in compilazione Tabella Multi State Machine Ingressi x Redis:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restitusice elenco KVP (async) per evitare blocchi quando chiamato da metodi asincroni
|
||||
/// </summary>
|
||||
@@ -3286,12 +3255,12 @@ namespace MP.IOC.Data
|
||||
ValString = valore,
|
||||
TagCode = label
|
||||
};
|
||||
await IocDbController.RegDichiarInsert(recDich);
|
||||
await IocDbController.RegDichiarInsertAsync(recDich);
|
||||
break;
|
||||
|
||||
case "RC":
|
||||
bool esitoOk = valNum != 0;
|
||||
await IocDbController.RegControlliInsert(idxMacchina, matrOpr, esitoOk, valore, dataOraEvento);
|
||||
await IocDbController.RegControlliInsertAsync(idxMacchina, matrOpr, esitoOk, valore, dataOraEvento);
|
||||
break;
|
||||
|
||||
case "RS":
|
||||
@@ -3304,7 +3273,7 @@ namespace MP.IOC.Data
|
||||
Note = valore,
|
||||
MatrOpr = matrOpr
|
||||
};
|
||||
await IocDbController.RegScartiInsert(recSca);
|
||||
await IocDbController.RegScartiInsertAsync(recSca);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -3346,23 +3315,6 @@ namespace MP.IOC.Data
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce il contapezzi come CONTEGGIO da TCRilevati per la macchina
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public int pzCounterTc(string idxMacchina)
|
||||
{
|
||||
int answ = -1;
|
||||
DateTime dataRif = DateTime.Now;
|
||||
var datiProd = StatoProdMacchina(idxMacchina, dataRif);
|
||||
if (datiProd != null)
|
||||
{
|
||||
answ = datiProd.PzTotODL;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce il contapezzi come CONTEGGIO da TCRilevati per la macchina - ASYNC
|
||||
/// </summary>
|
||||
@@ -3740,33 +3692,6 @@ namespace MP.IOC.Data
|
||||
/// currKey: IdxMacchina
|
||||
/// value: IdxFamigliaIngresso
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public KeyValuePair<string, string>[] resetMSMI(string idxMacchina)
|
||||
{
|
||||
var currHash = Utils.RedKeyMsmi(idxMacchina);
|
||||
//currTask = RedisGetHash(redKey);
|
||||
// recupero records
|
||||
var tabMSMI = IocDbController.VMSFDGetMultiByMacc(idxMacchina);
|
||||
|
||||
KeyValuePair<string, string>[] answ = new KeyValuePair<string, string>[tabMSMI.Count];
|
||||
// salvo tutti i valori StateMachineIngressi...
|
||||
int i = 0;
|
||||
foreach (var item in tabMSMI)
|
||||
{
|
||||
answ[i] = new KeyValuePair<string, string>(item.IdxMacchina, item.IdxFamigliaIngresso.ToString());
|
||||
i++;
|
||||
}
|
||||
// verifico il timeout (default 60 sec...)
|
||||
var sTOutSmi = tryGetConfig("TmOut.MSMI").Result;
|
||||
int tOut = 60;
|
||||
int.TryParse(sTOutSmi, out tOut);
|
||||
tOut = tOut <= 60 ? 60 : tOut;
|
||||
// salvo in redis!
|
||||
RedisSetHash(currHash, answ, tOut);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<KeyValuePair<string, string>[]> resetMSMIAsync(string idxMacchina)
|
||||
@@ -3909,58 +3834,6 @@ namespace MP.IOC.Data
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Processa registrazione di un counter x una data macchina IOB
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="counter">contapezzi</param>
|
||||
/// <returns></returns>
|
||||
public string saveCounter(string idxMacchina, string counter)
|
||||
{
|
||||
string answ = "0";
|
||||
// inizio processing vero e proprio INPUT...
|
||||
if (!string.IsNullOrEmpty(idxMacchina))
|
||||
{
|
||||
if (!string.IsNullOrEmpty(counter))
|
||||
{
|
||||
int newCounter = -1;
|
||||
int.TryParse(counter, out newCounter);
|
||||
// se il conteggio è >= 0 SALVO come nuovo conteggio...
|
||||
if (newCounter >= 0)
|
||||
{
|
||||
var currKey = Utils.RedKeyPzCount(idxMacchina, MpIoNS);
|
||||
RedisValue rawData = redisDb.StringGet(currKey);
|
||||
if (!rawData.HasValue)
|
||||
{
|
||||
// salvo per + tempo...
|
||||
redisDb.StringSet(currKey, answ.ToString());
|
||||
answ = counter;
|
||||
}
|
||||
else
|
||||
{
|
||||
int currCount = pzCounterTc(idxMacchina);
|
||||
answ = currCount.ToString();
|
||||
// salvo per meno tempo...
|
||||
redisDb.StringSet(currKey, answ, TimeSpan.FromSeconds(5));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string errore = "Errore: parametro counter vuoto";
|
||||
Log.Error(errore);
|
||||
answ = errore;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string errore = "Errore: parametro macchina vuoto";
|
||||
Log.Info(errore);
|
||||
answ = errore;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Processa registrazione di un counter x una data macchina IOB
|
||||
/// </summary>
|
||||
@@ -4038,27 +3911,6 @@ namespace MP.IOC.Data
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// salva il segnale di "microstato" (segnale)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina</param>
|
||||
/// <param name="valore">valore ingresso</param>
|
||||
/// <param name="dtEve">data-ora evento (server)</param>
|
||||
/// <param name="contatore">contatore sequenza dati inviati</param>
|
||||
/// <returns></returns>
|
||||
public bool saveSigLog(string idxMacchina, string valore, DateTime dtEve, int contatore)
|
||||
{
|
||||
SignalLogModel newRec = new SignalLogModel()
|
||||
{
|
||||
IdxMacchina = idxMacchina,
|
||||
DtCurr = DateTime.Now,
|
||||
DtEve = dtEve,
|
||||
Contatore = contatore,
|
||||
Valore = valore
|
||||
};
|
||||
return IocDbController.SignalLogInsert(newRec);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// salva il segnale di "microstato" (segnale) ASYNC
|
||||
/// </summary>
|
||||
@@ -4136,37 +3988,6 @@ namespace MP.IOC.Data
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restitusice elenco KVP dei campi della State Machine ingressi nel formato
|
||||
/// currKey: cState_nVal (current MICRO-STATE + "_" + new Value)
|
||||
/// value: iTipoEv_nState (IdxTipoEv da trasmettere + New MICRO-STATE
|
||||
/// </summary>
|
||||
/// <param name="idxFamIn"></param>
|
||||
/// <returns></returns>
|
||||
public KeyValuePair<string, string>[] StateMachInByKey(int idxFamIn)
|
||||
{
|
||||
// hard coded dimensione vettore DatiMacchine
|
||||
KeyValuePair<string, string>[] answ = new KeyValuePair<string, string>[1];
|
||||
// iniziualizzo con un valore... 0/0
|
||||
answ[0] = new KeyValuePair<string, string>("0", "0");
|
||||
// ORA recupero da memoria redis...
|
||||
try
|
||||
{
|
||||
var currHash = Utils.GetHashSMI(idxFamIn);
|
||||
answ = RedisGetHash(currHash);
|
||||
// se è vuoto... leggo da DB e popolo!
|
||||
if (answ.Length == 0)
|
||||
{
|
||||
answ = resetSMI(idxFamIn);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Errore in compilazione State Machine Ingressi x Redis:{Environment.NewLine}{exc}");
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restitusice elenco KVP dei campi della State Machine ingressi nel formato
|
||||
/// currKey: cState_nVal (current MICRO-STATE + "_" + new Value)
|
||||
@@ -4840,43 +4661,6 @@ namespace MP.IOC.Data
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resetta (rileggendo) i dati della State Machine ingressi nel formato
|
||||
/// currKey: cState_nVal (current MICRO-STATE + "_" + new Value)
|
||||
/// value: iTipoEv_nState (IdxTipoEv da trasmettere + New MICRO-STATE)
|
||||
/// </summary>
|
||||
/// <param name="idxFamIn"></param>
|
||||
/// <returns></returns>
|
||||
private KeyValuePair<string, string>[] resetSMI(int idxFamIn)
|
||||
{
|
||||
var currHash = Utils.GetHashSMI(idxFamIn);
|
||||
// leggo da DB...
|
||||
var tabSMI = IocDbController.StateMachineIngressi(idxFamIn);
|
||||
|
||||
KeyValuePair<string, string>[] answ = new KeyValuePair<string, string>[tabSMI.Count];
|
||||
// salvo tutti i valori StateMachineIngressi...
|
||||
int i = 0;
|
||||
string key = "";
|
||||
string val = "";
|
||||
foreach (var item in tabSMI)
|
||||
{
|
||||
key = string.Format("{0}_{1}", item.IdxMicroStato, item.ValoreIngresso);
|
||||
val = string.Format("{0}_{1}", item.IdxTipoEvento, item.NextIdxMicroStato);
|
||||
answ[i] = new KeyValuePair<string, string>(key, val);
|
||||
i++;
|
||||
}
|
||||
// verifico il timeout (default 60 sec...)
|
||||
var sTOutSmi = tryGetConfig("TmOut.SMI").Result;
|
||||
int tOut = 60;
|
||||
if (!string.IsNullOrEmpty(sTOutSmi))
|
||||
{
|
||||
int.TryParse(sTOutSmi, out tOut);
|
||||
}
|
||||
// salvo in redis!
|
||||
RedisSetHash(currHash, answ, tOut);
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resetta (rileggendo) i dati della State Machine ingressi nel formato
|
||||
/// currKey: cState_nVal (current MICRO-STATE + "_" + new Value)
|
||||
@@ -4994,37 +4778,6 @@ namespace MP.IOC.Data
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stato prod macchina (completo)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="dtReq"></param>
|
||||
/// <returns></returns>
|
||||
private StatoProdModel StatoProdMacchina(string idxMacchina, DateTime dtReq, bool forceDb = false)
|
||||
{
|
||||
// setup parametri costanti
|
||||
StatoProdModel? result = new StatoProdModel();
|
||||
// cerco in _redisConn...
|
||||
string currKey = $"{Utils.redisStatoProd}:{idxMacchina}:{dtReq:HHmm}";
|
||||
RedisValue rawData = redisDb.StringGet(currKey);
|
||||
if (rawData.HasValue && !forceDb)
|
||||
{
|
||||
result = JsonConvert.DeserializeObject<StatoProdModel>($"{rawData}");
|
||||
}
|
||||
else
|
||||
{
|
||||
result = IocDbController.StatoProdMacchina(idxMacchina, dtReq);
|
||||
// serializzo e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(5));
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
result = new StatoProdModel();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stato prod macchina (completo)
|
||||
/// </summary>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>6.16.2604.2010</Version>
|
||||
<Version>6.16.2604.2109</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MP-IOC </i>
|
||||
<h4>Versione: 6.16.2604.2010</h4>
|
||||
<h4>Versione: 6.16.2604.2109</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2604.2010
|
||||
6.16.2604.2109
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2604.2010</version>
|
||||
<version>6.16.2604.2109</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-IOC/stable/LAST/MP.IOC.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-IOC/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
@@ -177,10 +177,10 @@ namespace MP.IOC.Services
|
||||
tasks.Add(batch.ScriptEvaluateAsync(_updateScript,
|
||||
new RedisKey[] { hourKey },
|
||||
new RedisValue[] {
|
||||
count.ToString(),
|
||||
totalMs.ToString(),
|
||||
maxMs.ToString(),
|
||||
minMs.ToString(),
|
||||
count.ToString(CultureInfo.InvariantCulture),
|
||||
totalMs.ToString(CultureInfo.InvariantCulture),
|
||||
maxMs.ToString(CultureInfo.InvariantCulture),
|
||||
minMs.ToString(CultureInfo.InvariantCulture),
|
||||
SentinelValue
|
||||
}));
|
||||
|
||||
@@ -220,10 +220,10 @@ namespace MP.IOC.Services
|
||||
tasks.Add(batch.ScriptEvaluateAsync(_updateScript,
|
||||
new RedisKey[] { key },
|
||||
new RedisValue[] {
|
||||
agg.Count.ToString(),
|
||||
agg.TotalMs.ToString(),
|
||||
agg.MaxMs.ToString(),
|
||||
finalMin.ToString(),
|
||||
agg.Count.ToString(CultureInfo.InvariantCulture),
|
||||
agg.TotalMs.ToString(CultureInfo.InvariantCulture),
|
||||
agg.MaxMs.ToString(CultureInfo.InvariantCulture),
|
||||
finalMin.ToString(CultureInfo.InvariantCulture),
|
||||
SentinelValue
|
||||
}));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user