Typo fix + code reorg x IO/IOB

This commit is contained in:
Samuele E. Locatelli
2025-06-27 14:22:30 +02:00
parent 3e64170d1b
commit 7ad387a383
+100 -101
View File
@@ -15,7 +15,6 @@ namespace MP_IO.Controllers
{
public class IOBController : Controller
{
#region Public Methods
/// <summary> SALVA x macchina KVP parametro/valore:
@@ -571,106 +570,6 @@ namespace MP_IO.Controllers
return answ;
}
/// <summary>
/// Effettivo processing FLogJson
/// </summary>
/// <param name=""></param>
/// <param name="disabKA"></param>
/// <param name="insDone"></param>
/// <param name="answ"></param>
/// <param name="content"></param>
/// <returns></returns>
private string processFLogJson(stringid, bool disabKA, int insDone, string answ, string content)
{
DataLayer DataLayerObj = new DataLayer();
// procedo a deserializzare in blocco l'oggetto...
flogJsonPayload receivedData = new flogJsonPayload();
try
{
// deserializzo.
receivedData = JsonConvert.DeserializeObject<flogJsonPayload>(content);
}
catch (Exception exc)
{
logger.lg.scriviLog($"Errore in fase deserializzazione flogJson{Environment.NewLine}{exc}");
answ = "NO";
}
// se ho qualcosa da processare...
if (receivedData != null)
{
// per ogni valore --> salvo!
try
{
foreach (var item in receivedData.fluxData)
{
// formato datetime come yyyyMMddHHmmssfff -->es: 20181223180600000
answ = DataLayerObj.processFluxLog(id, item.flux, item.valore, item.dtEve.ToString("yyyyMMddHHmmssfff"), item.dtCurr.ToString("yyyyMMddHHmmssfff"), item.cnt, disabKA);
}
// se vuoto --> OK!
if (string.IsNullOrEmpty(answ))
{
answ = $"OK {insDone} processed";
}
}
catch (Exception exc)
{
logger.lg.scriviLog($"Errore in fase invio valori flogJson{Environment.NewLine}{exc}");
answ = "NO";
}
// leggo parametri correnti...
try
{
List<objItem> currParams = DataLayerObj.getCurrObjItems(id);
// ora per ogni valore RICEVUTO costruisco un oggetto in innovazioni da
// inviare...x salvare in stato parametri...
List<objItem> innovazioni = new List<objItem>();
foreach (var item in receivedData.fluxData)
{
// flux = uuid del parametro
objItem trovato = currParams.Find(obj => obj.uid == item.flux);
// se lo trovo aggiorno...
if (trovato != null)
{
// aggiorno valore e data
trovato.value = item.valore;
trovato.lastRead = DateTime.Now;
// se fosse un valore WRITE e mi ha dato un valore vuoto --> mando
// un fix x riscrittura
if (trovato.writable && string.IsNullOrEmpty(item.valore))
{
logger.lg.scriviLog($"flogJson | verifica parametri | {trovato.uid} | reqVal: {trovato.reqValue}");
taskType currTask = (taskType)Enum.Parse(typeof(taskType), trovato.uid);
DataLayerObj.addCheckTask4Machine(id, currTask, item.valore);
}
}
// altrimenti AGGIUNGO (READ ONLY)...
else
{
trovato = new objItem
{
uid = item.flux,
name = item.flux,
value = item.valore,
lastRead = DateTime.Now,
writable = false
};
}
// lo carico in innovation
innovazioni.Add(trovato);
}
// faccio upsert innovations!
DataLayerObj.upsertCurrObjItems(id, innovazioni);
}
catch (Exception exc)
{
logger.lg.scriviLog($"Errore in fase salvataggio innovazioni parametri correnti da flogJson{Environment.NewLine}{exc}");
answ = "NO";
}
}
return answ;
}
/// <summary>
/// Creazione nuovo ODL dato CodXdl + numPz
/// GET: IOB/forceCreatePOdl/SIMUL_03?CodXdl=ABCD_1234&numPz=5
@@ -2700,6 +2599,106 @@ namespace MP_IO.Controllers
return answ;
}
/// <summary>
/// Effettivo processing FLogJson
/// </summary>
/// <param name=""></param>
/// <param name="disabKA"></param>
/// <param name="insDone"></param>
/// <param name="answ"></param>
/// <param name="content"></param>
/// <returns></returns>
private string processFLogJson(string id, bool disabKA, int insDone, string answ, string content)
{
DataLayer DataLayerObj = new DataLayer();
// procedo a deserializzare in blocco l'oggetto...
flogJsonPayload receivedData = new flogJsonPayload();
try
{
// deserializzo.
receivedData = JsonConvert.DeserializeObject<flogJsonPayload>(content);
}
catch (Exception exc)
{
logger.lg.scriviLog($"Errore in fase deserializzazione flogJson{Environment.NewLine}{exc}");
answ = "NO";
}
// se ho qualcosa da processare...
if (receivedData != null)
{
// per ogni valore --> salvo!
try
{
foreach (var item in receivedData.fluxData)
{
// formato datetime come yyyyMMddHHmmssfff -->es: 20181223180600000
answ = DataLayerObj.processFluxLog(id, item.flux, item.valore, item.dtEve.ToString("yyyyMMddHHmmssfff"), item.dtCurr.ToString("yyyyMMddHHmmssfff"), item.cnt, disabKA);
}
// se vuoto --> OK!
if (string.IsNullOrEmpty(answ))
{
answ = $"OK {insDone} processed";
}
}
catch (Exception exc)
{
logger.lg.scriviLog($"Errore in fase invio valori flogJson{Environment.NewLine}{exc}");
answ = "NO";
}
// leggo parametri correnti...
try
{
List<objItem> currParams = DataLayerObj.getCurrObjItems(id);
// ora per ogni valore RICEVUTO costruisco un oggetto in innovazioni da
// inviare...x salvare in stato parametri...
List<objItem> innovazioni = new List<objItem>();
foreach (var item in receivedData.fluxData)
{
// flux = uuid del parametro
objItem trovato = currParams.Find(obj => obj.uid == item.flux);
// se lo trovo aggiorno...
if (trovato != null)
{
// aggiorno valore e data
trovato.value = item.valore;
trovato.lastRead = DateTime.Now;
// se fosse un valore WRITE e mi ha dato un valore vuoto --> mando
// un fix x riscrittura
if (trovato.writable && string.IsNullOrEmpty(item.valore))
{
logger.lg.scriviLog($"flogJson | verifica parametri | {trovato.uid} | reqVal: {trovato.reqValue}");
taskType currTask = (taskType)Enum.Parse(typeof(taskType), trovato.uid);
DataLayerObj.addCheckTask4Machine(id, currTask, item.valore);
}
}
// altrimenti AGGIUNGO (READ ONLY)...
else
{
trovato = new objItem
{
uid = item.flux,
name = item.flux,
value = item.valore,
lastRead = DateTime.Now,
writable = false
};
}
// lo carico in innovation
innovazioni.Add(trovato);
}
// faccio upsert innovations!
DataLayerObj.upsertCurrObjItems(id, innovazioni);
}
catch (Exception exc)
{
logger.lg.scriviLog($"Errore in fase salvataggio innovazioni parametri correnti da flogJson{Environment.NewLine}{exc}");
answ = "NO";
}
}
return answ;
}
#endregion Private Methods
}
}