Merge branch 'release/AddRawTransferPreliminary'

This commit is contained in:
Samuele Locatelli
2022-05-23 17:21:50 +02:00
5 changed files with 148 additions and 7 deletions
+81 -1
View File
@@ -79,6 +79,7 @@ namespace MP_IO.Controllers
return answ;
}
// GET: IOB/enabled/SIMUL_03
public string enabled(string id)
{
@@ -105,9 +106,88 @@ namespace MP_IO.Controllers
return answ;
}
/// <summary>
/// Processa una chiamata POST per l'invio di un array Json di oggetti rawTransfer (generiche info da deserializzare)
/// POST: IOB/rawTransfJson/SIMUL_03
/// </summary>
/// <param name="id">ID dell'IOB</param>
/// <returns></returns>
[HttpPost]
public string rawTransfJson(string id)
{
int insDone = 0;
string answ = "";
// 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;
// se ho dati...
if (content != "")
{
DataLayer DataLayerObj = new DataLayer();
// deserializzo come un dictionary generico di oggetti rawDataType/string
baseRawTransf receivedData = new baseRawTransf();
// procedo a deserializzare in blocco l'oggetto...
try
{
// deserializzo.
receivedData = JsonConvert.DeserializeObject<baseRawTransf>(content);
}
catch (Exception exc)
{
logger.lg.scriviLog($"Errore in fase deserializzazione rawTransfJson{Environment.NewLine}{exc}");
answ = "NO";
}
// se ho qualcosa da processare...
if (receivedData != null)
{
try
{
// per ora salvo su REDIS ultimo x tipo
DataLayerObj.lastRawTrasfData = JsonConvert.SerializeObject(receivedData.mesContent);
// !!! FixMe ToDo fare
// deserializzazione e salvataggio su MongoDB
// salvataggio su tab RawTrasf su DB IS
// in base al tipo processo...
switch (receivedData.mesType)
{
case rawTransfType.ND:
break;
case rawTransfType.IcoelBatch:
break;
case rawTransfType.IcoelVarInfo:
break;
default:
break;
}
insDone++;
// se vuoto --> OK!
if (string.IsNullOrEmpty(answ))
{
answ = $"OK {insDone} processed";
}
}
catch (Exception exc)
{
logger.lg.scriviLog($"Errore in fase invio valori rawTransfJson{Environment.NewLine}{exc}");
answ = "NO";
}
}
}
return answ;
}
/// <summary>
/// Processa una chiamata POST per l'invio di un array Json di oggetti input (EVENTI)
/// PUT: IOB/evListJson/SIMUL_03
/// POST: IOB/evListJson/SIMUL_03
/// </summary>
/// <param name="id">ID dell'IOB</param>
/// <returns></returns>
+25 -4
View File
@@ -120,10 +120,7 @@ namespace MapoDb
/// <returns></returns>
public static string hMSE
{
get
{
return mHash(string.Format("hMSE_DATA"));
}
get => mHash("hMSE_DATA");
}
public static string redKeyArtUsed
@@ -135,6 +132,11 @@ namespace MapoDb
get => mHash($"CACHE:TabCheckArt");
}
public static string redKeyRawTransfData
{
get => mHash($"RAW:TRANSFER");
}
/// <summary>
/// Cognome Nome da MatrOpr in sessione
/// </summary>
@@ -173,6 +175,25 @@ namespace MapoDb
}
}
/// <summary>
/// Dati RawTransfer serializzati in REDIS (get/set)
/// </summary>
public string lastRawTrasfData
{
get
{
string answ = "";
logger.lg.scriviLog("Richiesta rawTransfData da REDIS");
answ = memLayer.ML.getRSV(redKeyRawTransfData);
return answ;
}
set
{
memLayer.ML.setRSV(redKeyRawTransfData, value);
}
}
/// <summary>
/// MatrOpr in sessione
/// </summary>
+25 -1
View File
@@ -1,4 +1,7 @@
namespace MapoSDK
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace MapoSDK
{
public enum DataItemCategory
{
@@ -17,6 +20,27 @@
error
}
/// <summary>
/// Tipologia dato Raw Transfer
/// </summary>
/// serializzazione Native
/// [JsonConverter(typeof(JsonStringEnumConverter))]
/// serializzazione Newtonsoft json
/// [JsonConverter(typeof(StringEnumConverter))]
[JsonConverter(typeof(StringEnumConverter))]
public enum rawTransfType
{
ND = 0,
/// <summary>
/// Icoel: Batch info
/// </summary>
IcoelBatch,
/// <summary>
/// Icoel: Variety + layout info relative
/// </summary>
IcoelVarInfo
}
/// <summary>
/// Tipo di IOB
/// </summary>
+1 -1
View File
@@ -15,7 +15,7 @@
<Company>EgalWare</Company>
<Description>SDK for MAPO solutions</Description>
<PackageTags>MAPO;MES;SDK</PackageTags>
<Copyright>Copyright (c) 2007-2022 EgalWare</Copyright>
<Copyright>Copyright (c) 2007-2022 EgalWare</Copyright>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
+16
View File
@@ -438,4 +438,20 @@ namespace MapoSDK
#endregion Public Properties
}
/// <summary>
/// Classe di base per trasferimento informazioni di tipo RawTransfer
/// </summary>
public class baseRawTransf
{
/// <summary>
/// Tipo di messaggio trasmesso
/// </summary>
public rawTransfType mesType { get; set; } = rawTransfType.ND;
/// <summary>
/// Messaggio in modalità raw/stringa
/// </summary>
public object mesContent { get; set; } = null;
}
}