Aggiunta in sync metodo recupero dati inventario oggetti
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EgwProxy.MagMan.DTO
|
||||
{
|
||||
public class ItemDTO
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Codice Univoco (DB)
|
||||
/// </summary>
|
||||
public int ItemID { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Codice Materiale di provenienza
|
||||
/// </summary>
|
||||
public int MatID { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Check if is a Remnant
|
||||
/// </summary>
|
||||
public bool IsRemn { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Location
|
||||
/// </summary>
|
||||
public string Location { get; set; } = "";
|
||||
/// <summary>
|
||||
/// Qty available on wharehouse
|
||||
/// </summary>
|
||||
public int QtyAvail { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// DateTime last modification
|
||||
/// </summary>
|
||||
public DateTime DtMod { get; set; } = DateTime.Now.AddYears(10);
|
||||
|
||||
/// <summary>
|
||||
/// Item's Lenght
|
||||
/// </summary>
|
||||
public decimal LMm { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Item's Width
|
||||
/// </summary>
|
||||
public decimal WMm { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Item's Thikness
|
||||
/// </summary>
|
||||
public decimal TMm { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Note
|
||||
/// </summary>
|
||||
public string Note { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Codice QR/Matrix Item
|
||||
/// </summary>
|
||||
public string ItemDtmx { get; set; } = "";
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,6 @@ namespace EgwProxy.MagMan.DTO
|
||||
{
|
||||
public class MaterialDTO
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Codice Univoco (DB)
|
||||
/// </summary>
|
||||
@@ -35,8 +34,13 @@ namespace EgwProxy.MagMan.DTO
|
||||
/// </summary>
|
||||
public decimal TMm { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Codice QR/Matrix materiale materiale
|
||||
/// Codice QR/Matrix materiale
|
||||
/// </summary>
|
||||
public string MatDtmx { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Elenco item e giancenze
|
||||
/// </summary>
|
||||
public List<ItemDTO> ItemNav { get; set; } = new List<ItemDTO>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,30 +15,23 @@ namespace EgwProxy.MagMan
|
||||
{
|
||||
public class DataSyncro
|
||||
{
|
||||
#region Public Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Inizializza la libreria di comunicazione con il token assegnato
|
||||
/// </summary>
|
||||
/// <param name="UserToken"></param>
|
||||
public DataSyncro(string UserToken)
|
||||
public DataSyncro(string serverUrl, string UserToken)
|
||||
{
|
||||
RestToken = UserToken;
|
||||
servAddr = serverUrl;
|
||||
apiUrl = $"https://{servAddr}/api/";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Token di chiamata per l'applicazione
|
||||
/// </summary>
|
||||
string RestToken = "";
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// Effettua chiamata test sul server (ping)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool CheckRemote()
|
||||
{
|
||||
IPAddress address = IPAddress.Loopback;
|
||||
string srvIp = servAddr.Substring(0, servAddr.IndexOf(":"));
|
||||
return pingAddress(srvIp) == IPStatus.Success;
|
||||
}
|
||||
/// <summary>
|
||||
/// Test ping x indirizzo indicato
|
||||
/// </summary>
|
||||
@@ -74,21 +67,17 @@ namespace EgwProxy.MagMan
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
#if DEBUG
|
||||
|
||||
/// <summary>
|
||||
/// Indirizzo server (DEBUG)
|
||||
/// Effettua chiamata test sul server (ping)
|
||||
/// </summary>
|
||||
private static string servAddr = "localhost:7207";
|
||||
#else
|
||||
/// <summary>
|
||||
/// Indirizzo server (Release)
|
||||
/// </summary>
|
||||
private static string servAddr = "magman.egalware.com";
|
||||
#endif
|
||||
/// <summary>
|
||||
/// URL dell'API x chiamate gestione licenze
|
||||
/// </summary>
|
||||
private static string apiUrl = $"https://{servAddr}/api/";
|
||||
/// <returns></returns>
|
||||
public bool CheckRemote()
|
||||
{
|
||||
IPAddress address = IPAddress.Loopback;
|
||||
string srvIp = servAddr.Substring(0, servAddr.IndexOf(":"));
|
||||
return pingAddress(srvIp) == IPStatus.Success;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco Materiali dato RestToken
|
||||
@@ -98,7 +87,6 @@ namespace EgwProxy.MagMan
|
||||
List<MaterialDTO> answ = new List<MaterialDTO>();
|
||||
// cerco online
|
||||
RestClient client = new RestClient(apiUrl);
|
||||
//client.Authenticator = new HttpBasicAuthenticator("username", "password");
|
||||
string MKeyEnc = HttpUtility.UrlEncode(RestToken);
|
||||
var request = new RestRequest($"Materials/{MKeyEnc}", Method.Get);
|
||||
var response = await client.GetAsync(request);
|
||||
@@ -111,5 +99,49 @@ namespace EgwProxy.MagMan
|
||||
}
|
||||
return await Task.FromResult(answ);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Inventario per materiale
|
||||
/// </summary>
|
||||
/// <param name="MatID">Se 0 = tutto</param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<MaterialDTO>> GetInventario(int MatID)
|
||||
{
|
||||
List<MaterialDTO> answ = new List<MaterialDTO>();
|
||||
// cerco online
|
||||
RestClient client = new RestClient(apiUrl);
|
||||
string MKeyEnc = HttpUtility.UrlEncode(RestToken);
|
||||
var request = new RestRequest($"Inventory/{MKeyEnc}?MatId={MatID}", Method.Get);
|
||||
var response = await client.GetAsync(request);
|
||||
// controllo risposta
|
||||
if (response.StatusCode == System.Net.HttpStatusCode.OK)
|
||||
{
|
||||
// salvo in redis contenuto serializzato
|
||||
string rawData = $"{response.Content}";
|
||||
answ = JsonConvert.DeserializeObject<List<MaterialDTO>>(rawData);
|
||||
}
|
||||
return await Task.FromResult(answ);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
/// <summary>
|
||||
/// URL dell'API x chiamate gestione licenze
|
||||
/// </summary>
|
||||
private string apiUrl = $"";
|
||||
|
||||
/// <summary>
|
||||
/// Token di chiamata per l'applicazione
|
||||
/// </summary>
|
||||
private string RestToken = "";
|
||||
|
||||
/// <summary>
|
||||
/// Indirizzo server (URL con eventuale porta)
|
||||
/// </summary>
|
||||
private string servAddr = $"";
|
||||
|
||||
#endregion Private Fields
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -77,6 +77,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DataSyncro.cs" />
|
||||
<Compile Include="DTO\ItemDTO.cs" />
|
||||
<Compile Include="DTO\MaterialDTO.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -13,14 +13,29 @@ namespace DemoApp
|
||||
|
||||
static async Task Main(string[] args)
|
||||
{
|
||||
|
||||
#if DEBUG
|
||||
// Indirizzo server (DEBUG)
|
||||
string servAddr = "localhost:7207";
|
||||
|
||||
// token di auth
|
||||
string testToken = "91f4fec6-7e9c-4130-9df2-702d729ccdd3";
|
||||
#else
|
||||
// Indirizzo server (DEBUG)
|
||||
string servAddr = "magman.egalware.com";
|
||||
|
||||
// token di auth
|
||||
string testToken = "22fa4426-6670-41ad-ac2b-d7b5c3dfe849";
|
||||
#endif
|
||||
|
||||
string sep = "--------------------------------------------";
|
||||
string sepShort = "------------------";
|
||||
Console.WriteLine(sep);
|
||||
Console.WriteLine("- MagMan REST Demo App");
|
||||
Console.WriteLine(sep);
|
||||
Console.WriteLine();
|
||||
string answ = "";
|
||||
DataSyncro commLib = new DataSyncro(testToken);
|
||||
DataSyncro commLib = new DataSyncro(servAddr, testToken);
|
||||
Console.WriteLine("Premere ENT per check ping");
|
||||
answ = Console.ReadLine();
|
||||
bool servOk = commLib.CheckRemote();
|
||||
@@ -28,21 +43,63 @@ namespace DemoApp
|
||||
Console.WriteLine($"Esito controllo server: {esito}");
|
||||
Console.WriteLine("Premere un tasto per lettura archivio materiali");
|
||||
answ = Console.ReadLine();
|
||||
// leggo materiali
|
||||
var matList = await commLib.GetMaterials();
|
||||
if (matList != null)
|
||||
{
|
||||
foreach (var item in matList)
|
||||
{
|
||||
Console.WriteLine(sep);
|
||||
Console.WriteLine($"Mat ID: {item.MatID}");
|
||||
Console.WriteLine($"Mat Code: {item.MatExtCode}");
|
||||
Console.WriteLine($"Dtmx Code: {item.MatDtmx}");
|
||||
Console.WriteLine($"descript: {item.MatDesc}");
|
||||
Console.WriteLine($"Dimensions W x T x L: {item.WMm:N3} x {item.TMm:N3} x {item.LMm:N3}");
|
||||
if (item.ItemNav != null)
|
||||
{
|
||||
Console.WriteLine($"Items count: {item.ItemNav.Count}");
|
||||
}
|
||||
Console.WriteLine(sep);
|
||||
Console.WriteLine();
|
||||
}
|
||||
}
|
||||
answ = Console.ReadLine();
|
||||
// leggo inventario
|
||||
var inventList = await commLib.GetInventario(0);
|
||||
if (inventList != null)
|
||||
{
|
||||
foreach (var itemMat in inventList)
|
||||
{
|
||||
Console.WriteLine(sep);
|
||||
Console.WriteLine($"Mat ID: {itemMat.MatID}");
|
||||
Console.WriteLine($"Mat Code: {itemMat.MatExtCode}");
|
||||
Console.WriteLine($"Dtmx Code: {itemMat.MatDtmx}");
|
||||
Console.WriteLine($"descript: {itemMat.MatDesc}");
|
||||
Console.WriteLine($"Dimensions W x T x L: {itemMat.WMm:N3} x {itemMat.TMm:N3} x {itemMat.LMm:N3}");
|
||||
if (itemMat.ItemNav != null)
|
||||
{
|
||||
Console.WriteLine($"Items count: {itemMat.ItemNav.Count}");
|
||||
if (itemMat.ItemNav.Count > 0)
|
||||
{
|
||||
Console.WriteLine("Inventario:");
|
||||
foreach (var itemInv in itemMat.ItemNav)
|
||||
{
|
||||
Console.WriteLine(sepShort);
|
||||
Console.WriteLine($"ID: {itemInv.ItemID}");
|
||||
Console.WriteLine($"Location: {itemInv.Location}");
|
||||
Console.WriteLine($"Descript: {itemInv.Note}");
|
||||
Console.WriteLine($"Giacenza: {itemInv.QtyAvail}");
|
||||
Console.WriteLine($"Dimensions W x T x L: {itemInv.WMm:N3} x {itemInv.TMm:N3} x {itemInv.LMm:N3}");
|
||||
Console.WriteLine($"Dtmx Code: {itemInv.ItemDtmx}");
|
||||
}
|
||||
}
|
||||
}
|
||||
Console.WriteLine(sep);
|
||||
Console.WriteLine();
|
||||
}
|
||||
}
|
||||
|
||||
answ = Console.ReadLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ Public Class Form1
|
||||
result += $"Dtmx Code: {item.MatDtmx}{Environment.NewLine}"
|
||||
result += $"descript: {item.MatDesc}{Environment.NewLine}"
|
||||
result += $"Dimensions W x T x L: {item.WMm:N3} x {item.TMm:N3} x {item.LMm:N3}{Environment.NewLine}"
|
||||
'result += $"Items count: {item.ItemList.Count}"
|
||||
result += $"{Environment.NewLine}"
|
||||
Next
|
||||
End If
|
||||
|
||||
Reference in New Issue
Block a user