OK metodi get/set/upsert x objItems (parametri) in MP/IO
This commit is contained in:
@@ -328,13 +328,12 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// restituisce elenco parametri correnti come una List Json di oggetti parameterConf
|
||||
/// PUT: IOB/getCurrParam/SIMUL_03
|
||||
/// restituisce elenco parametri correnti come una List Json di oggetti objItem
|
||||
/// GET: IOB/getObjItems/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public string getCurrParams(string id)
|
||||
public string getObjItems(string id)
|
||||
{
|
||||
string answ = "";
|
||||
if (string.IsNullOrWhiteSpace(id))
|
||||
@@ -348,7 +347,7 @@ namespace MP_IO.Controllers
|
||||
try
|
||||
{
|
||||
// deserializzo.
|
||||
currParams = DataLayer.getIobCurrParams(id);
|
||||
currParams = DataLayer.getCurrObjItems(id);
|
||||
// se != null --> salvo!
|
||||
if (currParams != null)
|
||||
{
|
||||
@@ -364,13 +363,13 @@ namespace MP_IO.Controllers
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Processa una chiamata POST per l'invio di una List Json di oggetti parameterConf
|
||||
/// PUT: IOB/setCurrParam/SIMUL_03
|
||||
/// Processa una chiamata POST per l'invio di una List Json di oggetti objItem
|
||||
/// POST: IOB/setObjItems/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public string setCurrParams(string id)
|
||||
public string setObjItems(string id)
|
||||
{
|
||||
string answ = "";
|
||||
if (string.IsNullOrWhiteSpace(id))
|
||||
@@ -397,7 +396,54 @@ namespace MP_IO.Controllers
|
||||
// se != null --> salvo!
|
||||
if (currParams != null)
|
||||
{
|
||||
DataLayer.setIobCurrParams(id, currParams);
|
||||
DataLayer.setCurrObjItems(id, currParams);
|
||||
answ = "OK";
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Errore in setCurrParams{Environment.NewLine}{exc}");
|
||||
answ = "NO";
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Processa una chiamata POST per l'invio di una List Json di UNO O PIU' oggetti objItem
|
||||
/// POST: IOB/upsertObjItems/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public string upsertObjItems(string id)
|
||||
{
|
||||
string answ = "";
|
||||
if (string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
answ = "Missing IOB";
|
||||
}
|
||||
else
|
||||
{
|
||||
// questa classe è derivata da Controller.Response... x cui recupero lo stream in altro modo...
|
||||
string content = "";
|
||||
System.Web.HttpContext.Current.Request.InputStream.Position = 0;
|
||||
using (var reader = new StreamReader(Request.InputStream, System.Text.Encoding.UTF8, true, 4096, true))
|
||||
{
|
||||
content = reader.ReadToEnd();
|
||||
}
|
||||
//Rest
|
||||
System.Web.HttpContext.Current.Request.InputStream.Position = 0;
|
||||
// procedo a deserializzare in blocco l'oggetto...
|
||||
List<objItem> innovazioni = new List<objItem>();
|
||||
try
|
||||
{
|
||||
// deserializzo.
|
||||
innovazioni = JsonConvert.DeserializeObject<List<objItem>>(content);
|
||||
// se != null --> salvo!
|
||||
if (innovazioni != null)
|
||||
{
|
||||
// salvo
|
||||
DataLayer.upsertCurrObjItems(id, innovazioni);
|
||||
answ = "OK";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace MoonProTablet.WebUserControls
|
||||
List<objItem> dcList = new List<objItem>();
|
||||
try
|
||||
{
|
||||
dcList = DataLayer.getIobCurrParams(idxMacchina);
|
||||
dcList = DataLayer.getCurrObjItems(idxMacchina);
|
||||
fatto = true;
|
||||
}
|
||||
catch
|
||||
|
||||
+38
-8
@@ -1025,17 +1025,17 @@ namespace MapoDb
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public static List<objItem> getIobCurrParams(string idxMacchina)
|
||||
public static List<objItem> getCurrObjItems(string idxMacchina)
|
||||
{
|
||||
string serVal = memLayer.ML.getRSV(currParametersHash(idxMacchina));
|
||||
List <objItem> currParameters = new List<objItem>();
|
||||
if(serVal != null)
|
||||
List<objItem> currParameters = new List<objItem>();
|
||||
if (serVal != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
currParameters = JsonConvert.DeserializeObject<List<objItem>>(serVal);
|
||||
}
|
||||
catch(Exception exc)
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Eccezione in deserializzazione getIobCurrParam{Environment.NewLine}{exc}");
|
||||
}
|
||||
@@ -1046,14 +1046,44 @@ namespace MapoDb
|
||||
/// SET elenco parametri correnti x IOB
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="currParameters"></param>
|
||||
/// <param name="currValues"></param>
|
||||
/// <returns></returns>
|
||||
public static bool setIobCurrParams(string idxMacchina, List<objItem> currParameters)
|
||||
public static bool setCurrObjItems(string idxMacchina, List<objItem> currValues)
|
||||
{
|
||||
bool answ = false;
|
||||
if(currParameters!=null)
|
||||
if (currValues != null)
|
||||
{
|
||||
string serVal = JsonConvert.SerializeObject(currParameters);
|
||||
string serVal = JsonConvert.SerializeObject(currValues);
|
||||
memLayer.ML.setRSV(currParametersHash(idxMacchina), serVal);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Effettua UPSERT elenco parametri correnti x IOB (se c'è UPDATE, se manca ADD)
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <param name="innovations"></param>
|
||||
/// <returns></returns>
|
||||
public static bool upsertCurrObjItems(string idxMacchina, List<objItem> innovations)
|
||||
{
|
||||
bool answ = false;
|
||||
if (innovations != null)
|
||||
{
|
||||
// leggo i valori attuali...
|
||||
List<objItem> actValues = getCurrObjItems(idxMacchina);
|
||||
// per ogni valore passatomi faccio insert o update
|
||||
foreach (var item in innovations)
|
||||
{
|
||||
objItem trovato = actValues.Find(obj => obj.uid == item.uid);
|
||||
if (trovato != null)
|
||||
{
|
||||
actValues.Remove(trovato);
|
||||
}
|
||||
// aggiungo
|
||||
actValues.Add(item);
|
||||
}
|
||||
// serializzo e salvo
|
||||
string serVal = JsonConvert.SerializeObject(actValues);
|
||||
memLayer.ML.setRSV(currParametersHash(idxMacchina), serVal);
|
||||
}
|
||||
return answ;
|
||||
|
||||
Reference in New Issue
Block a user