diff --git a/EgwProxy.Icoel.Test/Program.cs b/EgwProxy.Icoel.Test/Program.cs index 6e3b2e11..f815aa2d 100644 --- a/EgwProxy.Icoel.Test/Program.cs +++ b/EgwProxy.Icoel.Test/Program.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using EgwProxy.Icoel; +using EgwProxy.Icoel.SizerService; namespace EgwProxy.Icoel.Test { @@ -25,21 +26,22 @@ namespace EgwProxy.Icoel.Test try { - var varList = IcoelSizer.RecuperaVarietyLayout(); - if (varList != null) + var varList = IcoelSizer.GetVarietyList(); + var varietyData = IcoelSizer.GetLayoutForVarietyList(varList); + if (varietyData != null) { - var stringList = IcoelSizer.DisplayVarietyLayout(varList); - foreach (var item in stringList) - { - Console.WriteLine(item); - } + DisplayVarietyLayout(varietyData); } - IcoelSizer.VerificaLottoCorrente(); - + var currBatch=IcoelSizer.GetCurrentBatch(); + foreach (var item in currBatch) + { + string lato = item.Key == 1 ? "SX" : "DX"; + Console.WriteLine($"[{item.Key}-{lato}] Grower code: {item.Value.GrowerCode} | Layout Name: {item.Value.LayoutName} | Totalling: [{item.Value.TotallingVarietyCode}] {item.Value.TotallingVariety} | Sizing: {item.Value.SizingProfileName} | Start {item.Value.StartTime} | End {item.Value.EndTime}"); + } IcoelSizer.MettiLottoInCoda(); - IcoelSizer.VerificaLottoCorrente(); + IcoelSizer.GetCurrentBatch(); Console.WriteLine("Done."); Console.ReadKey(); @@ -50,5 +52,46 @@ namespace EgwProxy.Icoel.Test Console.ReadKey(); } } + + + /// + /// Generazione di una list di info sui dati variety + /// + /// + /// + internal static void DisplayVarietyLayout(Dictionary varietyData) + { + + foreach (var item in varietyData) + { + Console.WriteLine("--------------------------"); + Console.WriteLine($"Variety Id: {item.Key.Id} | Variety Name: {item.Key.Name}"); + Console.WriteLine(" - Qualities"); + foreach (var quality in item.Key.Qualities) + { + Console.WriteLine($" Name: {quality.Name}"); + } + Console.WriteLine(" - Grades"); + foreach (var grade in item.Key.Grades) + { + Console.WriteLine($" Name: {grade.Name}"); + } + Console.WriteLine(" - Sizes"); + foreach (var size in item.Key.SizingMaps) + { + Console.WriteLine($" Name: {size.Name}"); + } + Console.WriteLine(" - LAYOUTS"); + foreach (var layout in item.Value) + { + Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}"); + Console.WriteLine(" - Products"); + foreach (var product in layout.Products) + { + Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}"); + } + } + } + } } } diff --git a/EgwProxy.Icoel/Compac/ComClient.cs b/EgwProxy.Icoel/Compac/ComClient.cs index a032d163..ac32c711 100644 --- a/EgwProxy.Icoel/Compac/ComClient.cs +++ b/EgwProxy.Icoel/Compac/ComClient.cs @@ -5,7 +5,7 @@ using System.ServiceModel; namespace EgwProxy.Icoel.Compac { - public class ComClient + public class ComClient:IDisposable { #region Public Constructors @@ -38,6 +38,7 @@ namespace EgwProxy.Icoel.Compac SSClient = new SizerServiceClient("WSHttpBinding_ISizerService", epa); } + #endregion Public Constructors #region Public Properties @@ -151,6 +152,14 @@ namespace EgwProxy.Icoel.Compac } } + /// + /// Dispose dell'oggetto + /// + public void Dispose() + { + Close(); + } + #endregion Internal Methods #region Private Properties diff --git a/EgwProxy.Icoel/Connector.cs b/EgwProxy.Icoel/Connector.cs index 081d6365..c1b2c66b 100644 --- a/EgwProxy.Icoel/Connector.cs +++ b/EgwProxy.Icoel/Connector.cs @@ -24,45 +24,23 @@ namespace EgwProxy.Icoel #region Public Methods - - public List DisplayVarietyLayout(Variety[] varietiesList) + /// + /// Restituisce un dictionary di layout validi x un array di varietà fornito + /// + /// + /// + public Dictionary GetLayoutForVarietyList(Variety[] varietiesList) { - List outVal = new List(); + Dictionary outVal = new Dictionary(); if (Client == null || !Client.connected) { Client = new ComClient(ipAddress, tcpPort); } foreach (var item in varietiesList) { - outVal.Add("--------------------------"); - outVal.Add($"Variety Id: {item.Id} | Variety Name: {item.Name}"); - outVal.Add(" - Qualities"); - foreach (var quality in item.Qualities) - { - outVal.Add($" Name: {quality.Name}"); - } - outVal.Add(" - Grades"); - foreach (var grade in item.Grades) - { - outVal.Add($" Name: {grade.Name}"); - } - outVal.Add(" - Sizes"); - foreach (var size in item.SizingMaps) - { - outVal.Add($" Name: {size.Name}"); - } // recupero layout della varietà var layoutList = Client.GetLayouts(item.Id); - outVal.Add(" - LAYOUTS"); - foreach (var layout in layoutList) - { - outVal.Add($" Id: {layout.Id} | Name: {layout.Name}"); - outVal.Add(" - Products"); - foreach (var product in layout.Products) - { - outVal.Add($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}"); - } - } + outVal.Add(item, layoutList); } // chiudo se fosse rimasto aperto Client.Close(); @@ -71,6 +49,51 @@ namespace EgwProxy.Icoel return outVal; } + /// + /// Restituisce un dictionary di varietà e relativi layout + /// + /// + /// + public Dictionary GetLayoutAndVariety() + { + Dictionary outVal = new Dictionary(); + if (Client == null || !Client.connected) + { + Client = new ComClient(ipAddress, tcpPort); + } + Variety[] varietiesList = Client.GetActiveVarieties(); + foreach (var item in varietiesList) + { + // recupero layout della varietà + var layoutList = Client.GetLayouts(item.Id); + outVal.Add(item, layoutList); + } + // chiudo se fosse rimasto aperto + Client.Close(); + + // restituisco dati + return outVal; + } + + /// + /// Restituisce elenco delel Variety + /// + /// + public Variety[] GetVarietyList() + { + //Client = new CompacClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort); + if (Client == null || !Client.connected) + { + Client = new ComClient(ipAddress, tcpPort); + } + Variety[] varietiesList; + varietiesList = Client.GetActiveVarieties(); + Client.Close(); + + return varietiesList; + } + + public void MettiLottoInCoda() { Client = new ComClient(ipAddress, tcpPort); @@ -78,7 +101,7 @@ namespace EgwProxy.Icoel Client.VerificaEsistenzaGrower(Details.GrowerCode, Details.GrowerName); // recupero varietà x selezione - var varList = RecuperaVarietyLayout(); + var varList = GetVarietyList(); int idxVar = -1; int idxLay = -1; @@ -89,7 +112,9 @@ namespace EgwProxy.Icoel Console.WriteLine("--------------------"); Console.WriteLine("Varietà disponibili:"); Console.WriteLine("--------------------"); - DisplayVarietyLayout(varList); +#if false + DisplayVarietyLayout(varList); +#endif // chiedo di selezionare while (idxVar <= 0) { @@ -155,32 +180,30 @@ namespace EgwProxy.Icoel Client.Close(); } - public Variety[] RecuperaVarietyLayout() + + public Dictionary GetCurrentBatch() { - //Client = new CompacClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort); - if (Client == null || !Client.connected) + Dictionary outVal = new Dictionary(); + + using (var cClient = new ComClient(ipAddress, tcpPort)) { - Client = new ComClient(ipAddress, tcpPort); - } - Variety[] varietiesList; - varietiesList = Client.GetActiveVarieties(); - Client.Close(); - return varietiesList; - } - - public void VerificaLottoCorrente() - { +#if false Client = new ComClient(ipAddress, tcpPort); +#endif - //Client.GetCurrentBatch(); - var batch = Client.GetCurrentBatchByLane(1); - Console.WriteLine($"[1-SX] Grower code: {batch.GrowerCode} | Layout Name: {batch.LayoutName} | Totalling: [{batch.TotallingVarietyCode}] {batch.TotallingVariety} | Sizing: {batch.SizingProfileName} | Start {batch.StartTime} | End {batch.EndTime}"); + //Client.GetCurrentBatch(); + for (int i = 1; i <= 2; i++) + { + var batch = Client.GetCurrentBatchByLane(i); + outVal.Add(i, batch); + } - batch = Client.GetCurrentBatchByLane(2); - Console.WriteLine($"[2-DX] Grower code: {batch.GrowerCode} | Layout Name: {batch.LayoutName} | Totalling: [{batch.TotallingVarietyCode}] {batch.TotallingVariety} | Sizing: {batch.SizingProfileName} | Start {batch.StartTime} | End {batch.EndTime}"); - - Client.Close(); +#if false + Client.Close(); +#endif + } + return outVal; } #endregion Public Methods