diff --git a/Thermo.Active/Controllers/WebApi/RecipeController.cs b/Thermo.Active/Controllers/WebApi/RecipeController.cs index 62338b86..eca92022 100644 --- a/Thermo.Active/Controllers/WebApi/RecipeController.cs +++ b/Thermo.Active/Controllers/WebApi/RecipeController.cs @@ -60,41 +60,49 @@ namespace Thermo.Active.Controllers.WebApi { if (parametersList != null) { - using (NcAdapter ncAdapter = new NcAdapter()) + if (RecipeLiveData != null) { - // Try connection - CmsError libraryError = ncAdapter.Connect(); - if (libraryError.errorCode != 0) - return NotFound(); - - // read recipe! - CmsError cmsError = ncAdapter.ReadFullRecipe(out Dictionary prevRecipe); - if (cmsError.IsError()) - return BadRequest(cmsError.localizationKey); - - Dictionary updtRecipe = new Dictionary(); - - foreach (var item in parametersList) + using (NcAdapter ncAdapter = new NcAdapter()) { - if (prevRecipe.ContainsKey(item.Key)) - { - // aggiorno il valore HMI nel parametro - var currParam = prevRecipe[item.Key]; - currParam.SetpointHMI = item.Value; - // salvo (1 parametro, potrei fare N...) - updtRecipe.Add(item.Key, currParam); - } - else - { + // Try connection + CmsError libraryError = ncAdapter.Connect(); + if (libraryError.errorCode != 0) return NotFound(); + + // read recipe! + CmsError cmsError = ncAdapter.ReadFullRecipe(out Dictionary prevRecipe); + if (cmsError.IsError()) + return BadRequest(cmsError.localizationKey); + + Dictionary updtRecipe = new Dictionary(); + + foreach (var item in parametersList) + { + if (prevRecipe.ContainsKey(item.Key)) + { + // aggiorno il valore HMI nel parametro + var currParam = prevRecipe[item.Key]; + currParam.SetpointHMI = item.Value; + // salvo (1 parametro, potrei fare N...) + updtRecipe.Add(item.Key, currParam); + } + else + { + return NotFound(); + } } + + // scrivo sul PLC + ncAdapter.WriteRecipeParams(updtRecipe); + + // ritorno solo fatto! + return Ok(); } - - // scrivo sul PLC - ncAdapter.WriteRecipeParams(updtRecipe); - - // ritorno solo fatto! - return Ok(); + } + else + { + // non pronto! + return InternalServerError(); } } else @@ -110,34 +118,42 @@ namespace Thermo.Active.Controllers.WebApi [Route("confirm"), HttpPut] public IHttpActionResult ConfirmEdit() { - using (NcAdapter ncAdapter = new NcAdapter()) + if (RecipeLiveData != null) { - // Try connection - CmsError libraryError = ncAdapter.Connect(); - if (libraryError.errorCode != 0) - return NotFound(); - - // scrivo sul PLC il comando conferma! - CmsError cmsError = ncAdapter.ConfirmRecipeData(true); - if (cmsError.IsError()) - return BadRequest(cmsError.localizationKey); - - // recupero i dati LIVE dei parametri HMI della ricetta... - cmsError = ncAdapter.ReadFullRecipe(out Dictionary currRecipe); - if (cmsError.IsError()) - return BadRequest(cmsError.localizationKey); - - // rileggo la ricetta - var currParams = new Dictionary(); - foreach (var item in currRecipe) + using (NcAdapter ncAdapter = new NcAdapter()) { - currParams.Add(item.Key, item.Value.SetpointHMI); + // Try connection + CmsError libraryError = ncAdapter.Connect(); + if (libraryError.errorCode != 0) + return NotFound(); + + // scrivo sul PLC il comando conferma! + CmsError cmsError = ncAdapter.ConfirmRecipeData(true); + if (cmsError.IsError()) + return BadRequest(cmsError.localizationKey); + + // recupero i dati LIVE dei parametri HMI della ricetta... + cmsError = ncAdapter.ReadFullRecipe(out Dictionary currRecipe); + if (cmsError.IsError()) + return BadRequest(cmsError.localizationKey); + + // rileggo la ricetta + var currParams = new Dictionary(); + foreach (var item in currRecipe) + { + currParams.Add(item.Key, item.Value.SetpointHMI); + } + + saveCurrentRecipeParams(currParams); + + // ritorno solo fatto! + return Ok(); } - - saveCurrentRecipeParams(currParams); - - // ritorno solo fatto! - return Ok(); + } + else + { + // non pronto! + return InternalServerError(); } } @@ -148,34 +164,42 @@ namespace Thermo.Active.Controllers.WebApi [Route("cancel"), HttpPut] public IHttpActionResult CancelEdit() { - using (NcAdapter ncAdapter = new NcAdapter()) + if (RecipeLiveData != null) { - // Try connection - CmsError libraryError = ncAdapter.Connect(); - if (libraryError.errorCode != 0) - return NotFound(); - - // scrivo sul PLC il comando annula! - CmsError cmsError = ncAdapter.ConfirmRecipeData(false); - if (cmsError.IsError()) - return BadRequest(cmsError.localizationKey); - - // recupero i dati LIVE dei parametri HMI della ricetta... - cmsError = ncAdapter.ReadFullRecipe(out Dictionary currRecipe); - if (cmsError.IsError()) - return BadRequest(cmsError.localizationKey); - - var currParams = new Dictionary(); - foreach (var item in currRecipe) + using (NcAdapter ncAdapter = new NcAdapter()) { - currParams.Add(item.Key, item.Value.SetpointPLC); + // Try connection + CmsError libraryError = ncAdapter.Connect(); + if (libraryError.errorCode != 0) + return NotFound(); + + // scrivo sul PLC il comando annula! + CmsError cmsError = ncAdapter.ConfirmRecipeData(false); + if (cmsError.IsError()) + return BadRequest(cmsError.localizationKey); + + // recupero i dati LIVE dei parametri HMI della ricetta... + cmsError = ncAdapter.ReadFullRecipe(out Dictionary currRecipe); + if (cmsError.IsError()) + return BadRequest(cmsError.localizationKey); + + var currParams = new Dictionary(); + foreach (var item in currRecipe) + { + currParams.Add(item.Key, item.Value.SetpointPLC); + } + + // ora salvo ANCHE i dati live... + saveCurrentRecipeParams(currParams); + + // ritorno solo fatto! + return Ok(); } - - // ora salvo ANCHE i dati live... - saveCurrentRecipeParams(currParams); - - // ritorno solo fatto! - return Ok(); + } + else + { + // non pronto! + return InternalServerError(); } }