ancora rimozione chaimate async
This commit is contained in:
@@ -62,7 +62,7 @@ namespace MP.IOC.Controllers
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("DatiMacc")]
|
||||
public string DatiMacc(string id)
|
||||
public async Task<string> DatiMacc(string id)
|
||||
{
|
||||
string answ = "ND";
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
@@ -77,8 +77,7 @@ namespace MP.IOC.Controllers
|
||||
answ = "";
|
||||
try
|
||||
{
|
||||
Dictionary<string, string> valori = DService.mDatiMacchine(id);
|
||||
//Dictionary<string, string> valori = DService.ResetDatiMacchina(id);
|
||||
Dictionary<string, string> valori = await DService.mDatiMacchineAsync(id);
|
||||
foreach (var item in valori)
|
||||
{
|
||||
answ += $"{item.Key}|{item.Value}{Environment.NewLine}";
|
||||
@@ -154,7 +153,7 @@ namespace MP.IOC.Controllers
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("InsEnab")]
|
||||
public string InsEnab(string id)
|
||||
public async Task<string> InsEnab(string id)
|
||||
{
|
||||
string answ = "ND";
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
@@ -167,13 +166,8 @@ namespace MP.IOC.Controllers
|
||||
else
|
||||
{
|
||||
// recupero microstato macchina da chiave relativa
|
||||
answ = "";
|
||||
try
|
||||
{
|
||||
answ += $"Macchina {id}, insEnabled {DService.IobInsEnab(id)}{Environment.NewLine}";
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
var insEnab = await DService.IobInsEnabAsync(id);
|
||||
answ = $"Macchina {id}, insEnabled {insEnab}{Environment.NewLine}";
|
||||
}
|
||||
stopWatch.Stop();
|
||||
// Get the elapsed time as a TimeSpan value.
|
||||
|
||||
@@ -1703,17 +1703,6 @@ namespace MP.IOC.Data
|
||||
return mongoController.InitRecipe(confPath, idxPODL, CalcArgs);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce il valore booleano se la macchina sia abilitata all'input
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public bool IobInsEnab(string idxMacchina)
|
||||
{
|
||||
bool answ = Convert.ToBoolean(mDatiMacchinaVal(idxMacchina, "insEnabled"));
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce il valore booleano se la macchina sia abilitata all'input
|
||||
/// </summary>
|
||||
@@ -1723,18 +1712,14 @@ namespace MP.IOC.Data
|
||||
{
|
||||
var key = Utils.RedKeyDatiMacc(idxMacchina, MpIoNS);
|
||||
|
||||
// 1. Tentativo ottimizzato: leggiamo solo il campo che ci serve
|
||||
// Supponendo che tu usi StackExchange.Redis direttamente o un wrapper
|
||||
string? val = await redisDb.HashGetAsync(key, "insEnabled");
|
||||
|
||||
// 2. Se non c'è in cache, carichiamo/resettiamo tutto
|
||||
if (val == null)
|
||||
{
|
||||
var data = await ResetDatiMacchinaAsync(idxMacchina);
|
||||
data.TryGetValue("insEnabled", out val);
|
||||
}
|
||||
|
||||
// 3. Parsing sicuro
|
||||
return val != null && (val == "1" || val.ToLower() == "true");
|
||||
}
|
||||
|
||||
@@ -2230,6 +2215,7 @@ namespace MP.IOC.Data
|
||||
return answ;
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Restituisce valore di una singola chiave del dizionario DatiMacchina
|
||||
/// </summary>
|
||||
@@ -2273,6 +2259,7 @@ namespace MP.IOC.Data
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Restitusice elenco KVP dei campi DatiMacchine + StatoMacchine per l'impianto indicato
|
||||
@@ -4822,6 +4809,7 @@ namespace MP.IOC.Data
|
||||
stopWatch.Start();
|
||||
string readType = "DB";
|
||||
var dbResults = IocDbController.VMSFDGetByMacc(idxMacc);
|
||||
double numSecCache = redisLongTimeCache;
|
||||
// converto in formato dizionario...
|
||||
if (dbResults != null && dbResults.Count > 0)
|
||||
{
|
||||
@@ -4853,6 +4841,8 @@ namespace MP.IOC.Data
|
||||
result.Add("IdxFamMacc", $"{rowResult.IdxFamiglia}");
|
||||
result.Add("simplePallet", $"{rowResult.SimplePallet}");
|
||||
result.Add("palletChange", $"{rowResult.PalletChange}");
|
||||
//double numSecCache = ((result["insEnabled"].ToLower() == "true") ? redisShortTimeCache : redisLongTimeCache);
|
||||
numSecCache = rowResult.InsEnabled ? redisShortTimeCache : redisLongTimeCache;
|
||||
}
|
||||
// cerco info Master/slave...
|
||||
var m2sTab = Macchine2SlaveGetAll();
|
||||
@@ -4861,8 +4851,6 @@ namespace MP.IOC.Data
|
||||
result.Add("Master", isMaster);
|
||||
result.Add("Slave", isSlave);
|
||||
|
||||
// durata cache in secondi dal valore insEnabled...
|
||||
double numSecCache = ((result["insEnabled"].ToLower() == "true") ? redisShortTimeCache : redisLongTimeCache);
|
||||
// ...e salvo...
|
||||
RedisSetHashDict(currHash, result, numSecCache);
|
||||
|
||||
@@ -4890,6 +4878,7 @@ namespace MP.IOC.Data
|
||||
Dictionary<string, string>? result = new Dictionary<string, string>();
|
||||
|
||||
var dbResult = await IocDbController.VMSFDGetByMaccAsync(idxMacc);
|
||||
double numSecCache = redisLongTimeCache;
|
||||
// converto in formato dizionario...
|
||||
if (dbResult != null)
|
||||
{ // salvo 1:1 i valori... STATO
|
||||
@@ -4919,6 +4908,9 @@ namespace MP.IOC.Data
|
||||
result.Add("IdxFamMacc", $"{dbResult.IdxFamiglia}");
|
||||
result.Add("simplePallet", $"{dbResult.SimplePallet}");
|
||||
result.Add("palletChange", $"{dbResult.PalletChange}");
|
||||
// durata cache in secondi dal valore insEnabled...
|
||||
//double numSecCache = ((result["insEnabled"].ToLower() == "true") ? redisShortTimeCache : redisLongTimeCache);
|
||||
numSecCache = dbResult.InsEnabled ? redisShortTimeCache : redisLongTimeCache;
|
||||
}
|
||||
// cerco info Master/slave...
|
||||
var m2sTab = await Macchine2SlaveGetAllAsync();
|
||||
@@ -4927,8 +4919,6 @@ namespace MP.IOC.Data
|
||||
result.Add("Master", isMaster);
|
||||
result.Add("Slave", isSlave);
|
||||
|
||||
// durata cache in secondi dal valore insEnabled...
|
||||
double numSecCache = ((result["insEnabled"].ToLower() == "true") ? redisShortTimeCache : redisLongTimeCache);
|
||||
// ...e salvo...
|
||||
await RedisSetHashDictAsync(currHash, result, numSecCache);
|
||||
|
||||
@@ -5189,157 +5179,6 @@ namespace MP.IOC.Data
|
||||
return RedisGetHashField(currHash, field);
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// controlla se da il segnale di "microstato" deriva un evento da generare - modalità OFFLINE
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina">idx macchina</param>
|
||||
/// <param name="valore">valore ingresso</param>
|
||||
/// <param name="dtEve">data-ora evento (server)</param>
|
||||
/// <returns></returns>
|
||||
public inputComandoMapo checkMicroStato(string idxMacchina, string valore, DateTime dtEve)
|
||||
{
|
||||
if (cMemLayer.CRI("_logLevel") > 6)
|
||||
{
|
||||
Log.Info(string.Format("{2}---------------------------{2}Richiesta verifica INPUT per Macchina {0}, seriale {1}", idxMacchina, valore, Environment.NewLine), tipoLog.INFO);
|
||||
}
|
||||
// formatto output
|
||||
inputComandoMapo answ = new inputComandoMapo();
|
||||
DS_applicazione.TransizioneIngressiDataTable TabTransIn;
|
||||
DS_applicazione.TransizioneIngressiRow rigaTransIn = null;
|
||||
// verifico se esista la macchina altrimenti la creo...
|
||||
verificaIdxMacchina(idxMacchina);
|
||||
string CodArticolo = "";
|
||||
// recupero CodArticolo corretto
|
||||
try
|
||||
{
|
||||
// 2017.07.10 forzo init x errori "sovrapposizioni"
|
||||
taDatiMacchine = new DS_ProdTempiTableAdapters.DatiMacchineTableAdapter();
|
||||
CodArticolo = taDatiMacchine.getByIdx(idxMacchina)[0].CodArticolo_A;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Info(string.Format("[ChkMiSt_4b] - Eccezione in recupero CodArticolo:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
|
||||
}
|
||||
// recupero next microstato
|
||||
//int? valINT = Convert.ToInt32(valore);
|
||||
int? valINT = 0;
|
||||
try
|
||||
{
|
||||
// 2017.06.09 forzo init x errori "sovrapposizioni"
|
||||
MapoDbObj.taTransIngr = new DS_applicazioneTableAdapters.TransizioneIngressiTableAdapter();
|
||||
valINT = int.Parse(valore, System.Globalization.NumberStyles.HexNumber);
|
||||
TabTransIn = MapoDbObj.taTransIngr.getByIdxMacchinaValore(idxMacchina, valINT);
|
||||
if (TabTransIn.Rows.Count > 0)
|
||||
{
|
||||
rigaTransIn = TabTransIn[0];
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Info(string.Format("[ChkMiSt_5b] - Eccezione in recupero riga Trans ingressi per idxMacchina {3} e valore {2}:{0}{1}", Environment.NewLine, exc, valINT, idxMacchina), tipoLog.EXCEPTION);
|
||||
}
|
||||
int _logLevel = cMemLayer.CRI("_logLevel");
|
||||
// effettuo update vari
|
||||
if (rigaTransIn != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_logLevel > 5)
|
||||
{
|
||||
Log.Info(string.Format("[ChkMiSt_6b] - Salvo Update Microstato:{0}macchina: {1} | valore seriale: {2} | next micro stato: {3}", Environment.NewLine, idxMacchina, valINT, rigaTransIn.next_IdxMicroStato), tipoLog.INFO);
|
||||
}
|
||||
// salvo nuovo microstato...
|
||||
MapoDbObj.taMSM.updateQuery(rigaTransIn.next_IdxMicroStato, dtEve, valore, idxMacchina);
|
||||
// controllo se c'è evento
|
||||
if (rigaTransIn.IdxTipoEvento > 0)
|
||||
{
|
||||
if (_logLevel > 5)
|
||||
{
|
||||
Log.Info(string.Format("[ChkMiSt_7b] - Salvo evento:{0}macchina: {1} | tipoEvento: {2} | CodArticolo: {3}", Environment.NewLine, idxMacchina, rigaTransIn.IdxTipoEvento, CodArticolo), tipoLog.INFO);
|
||||
}
|
||||
answ = scriviRigaEvento(idxMacchina, rigaTransIn.IdxTipoEvento, CodArticolo, valore, 0, "-", dtEve, DateTime.Now);
|
||||
if (_logLevel > 5)
|
||||
{
|
||||
Log.Info(string.Format("[ChkMiSt_b] -Macchina {0}, seriale(INT) {1}{2}---------------------------{2}", idxMacchina, valINT, Environment.NewLine), tipoLog.INFO);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Info(string.Format("[ChkMiSt_8b] - Eccezione:{0}{1}", Environment.NewLine, exc), tipoLog.EXCEPTION);
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// controlla se da il segnale di "microstato" deriva un evento da generare
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="valore"></param>
|
||||
/// <returns></returns>
|
||||
public inputComandoMapo checkMicroStato(string idxMacchina, string valore)
|
||||
{
|
||||
// wrapper ad ora corrente...
|
||||
return checkMicroStato(idxMacchina, valore, DateTime.Now);
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// cerca codice in anagrafica macchine ed eventualmente inserisce nuova macchina
|
||||
/// </summary>
|
||||
/// <param name="IdxMacchina"></param>
|
||||
private void verificaIdxMacchina(string IdxMacchina)
|
||||
{
|
||||
bool needDB = false;
|
||||
try
|
||||
{
|
||||
// esecuzione in REDIS...cerco status macchina...
|
||||
if (mDatiMacchine(IdxMacchina).Count == 0)
|
||||
{
|
||||
needDB = true;
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
if (needDB)
|
||||
{
|
||||
// verifico se esiste su DB
|
||||
var dbRec = IocDbController.MacchineGetByIdx(IdxMacchina);
|
||||
if (dbRec == null)
|
||||
{
|
||||
MacchineModel newRec = new MacchineModel()
|
||||
{
|
||||
IdxMacchina = IdxMacchina,
|
||||
CodMacchina = "0000",
|
||||
Nome = IdxMacchina,
|
||||
Descrizione = "Macchina non codificata",
|
||||
Note = "-",
|
||||
locazione = "",
|
||||
RecipeArchivePath = "",
|
||||
RecipePath = ""
|
||||
};
|
||||
IocDbController.MacchineUpsert(newRec);
|
||||
|
||||
// verifico ci sia un microstato macchina...
|
||||
var recMSM = IocDbController.MicroStatoMacchinaGetByIdxMacc(IdxMacchina);
|
||||
if (recMSM.Count == 0)
|
||||
{
|
||||
// inserisco nuovo stato...
|
||||
MicroStatoMacchinaModel msRec = new MicroStatoMacchinaModel()
|
||||
{
|
||||
IdxMacchina = IdxMacchina,
|
||||
IdxMicroStato = 0,
|
||||
InizioStato = DateTime.Now,
|
||||
Value = "00"
|
||||
};
|
||||
IocDbController.MicroStatoMacchinaUpsert(msRec);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// cerca codice in anagrafica macchine ed eventualmente inserisce nuova macchina
|
||||
/// </summary>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>6.16.2604.1812</Version>
|
||||
<Version>6.16.2604.1814</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MP-IOC </i>
|
||||
<h4>Versione: 6.16.2604.1812</h4>
|
||||
<h4>Versione: 6.16.2604.1814</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2604.1812
|
||||
6.16.2604.1814
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2604.1812</version>
|
||||
<version>6.16.2604.1814</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>
|
||||
|
||||
Reference in New Issue
Block a user