diff --git a/MP-IO/Controllers/IOBController.cs b/MP-IO/Controllers/IOBController.cs index 9e85f18e..7a23df86 100644 --- a/MP-IO/Controllers/IOBController.cs +++ b/MP-IO/Controllers/IOBController.cs @@ -15,7 +15,6 @@ namespace MP_IO.Controllers { public class IOBController : Controller { - #region Public Methods /// SALVA x macchina KVP parametro/valore: @@ -571,106 +570,6 @@ namespace MP_IO.Controllers return answ; } - /// - /// Effettivo processing FLogJson - /// - /// - /// - /// - /// - /// - /// - 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(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 currParams = DataLayerObj.getCurrObjItems(id); - // ora per ogni valore RICEVUTO costruisco un oggetto in innovazioni da - // inviare...x salvare in stato parametri... - List innovazioni = new List(); - 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; - } - /// /// 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; } + /// + /// Effettivo processing FLogJson + /// + /// + /// + /// + /// + /// + /// + 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(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 currParams = DataLayerObj.getCurrObjItems(id); + // ora per ogni valore RICEVUTO costruisco un oggetto in innovazioni da + // inviare...x salvare in stato parametri... + List innovazioni = new List(); + 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 } } \ No newline at end of file