using EgwProxy.Icoel.SizerService; using EgwProxy.Icoel.Test.INI; using System; using System.Collections.Generic; namespace EgwProxy.Icoel.Test { internal class Program { #region Internal Methods /// /// Generazione di una list di info sui dati variety /// /// /// internal static void DisplayVariety(Variety[] varietyData) { foreach (var item in varietyData) { Console.WriteLine("--------------------------"); Console.WriteLine($"Variety Id: {item.Id} | Variety Name: {item.Name}"); Console.WriteLine(" - Qualities"); foreach (var quality in item.Qualities) { Console.WriteLine($" Name: {quality.Name}"); } Console.WriteLine(" - Grades"); foreach (var grade in item.Grades) { Console.WriteLine($" Name: {grade.Name}"); } Console.WriteLine(" - Sizes"); foreach (var size in item.SizingMaps) { Console.WriteLine($" Name: {size.Name}"); } } } /// /// 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}"); } } } } /// /// Mostra elenco variety e quanod utente seleziona restituisce varGuid /// /// internal static Guid selLayout(Connector IcoelSizer, Guid varGuid) { int idxLay = -1; Guid layGuid = Guid.NewGuid(); // recupero layout della varietà var layoutList = IcoelSizer.GetLayoutForVariety(varGuid); Console.WriteLine("--------------------"); Console.WriteLine("Layout disponibili:"); Console.WriteLine("--------------------"); DisplayLayout(layoutList); // recupero layout x varietà while (idxLay <= 0) { Console.WriteLine(""); Console.WriteLine("indicare layout"); var rawData = Console.ReadLine(); if (!string.IsNullOrEmpty(rawData)) { int.TryParse(rawData, out idxLay); // verifico sia valida.. if (layoutList.Length >= idxLay && idxLay > 0) { layGuid = layoutList[idxLay - 1].Id; } else { idxLay = -1; } } } return layGuid; } /// /// Mostra elenco variety e quanod utente seleziona restituisce varGuid /// /// internal static Guid selVariety(Connector IcoelSizer) { int idxVar = -1; Guid varGuid = Guid.NewGuid(); var varList = IcoelSizer.GetVarietyList(true); Console.WriteLine("--------------------"); Console.WriteLine("Varietà disponibili:"); Console.WriteLine("--------------------"); DisplayVariety(varList); // chiedo di selezionare while (idxVar <= 0) { Console.WriteLine(""); Console.WriteLine("indicare varietà richiesta (#)"); var rawData = Console.ReadLine(); if (!string.IsNullOrEmpty(rawData)) { int.TryParse(rawData, out idxVar); // verifico sia valida.. if (varList.Length >= idxVar && idxVar > 0) { varGuid = varList[idxVar - 1].Id; } else { idxVar = -1; } } } return varGuid; } #endregion Internal Methods #region Private Methods /// /// Generazione di una list di layout dato elenco /// /// /// private static void DisplayLayout(Layout[] layoutList) { foreach (var layout in layoutList) { 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}"); } } } /// /// Programma principale /// /// private static void Main(string[] args) { // leggo conf da file ini (ip/port) Console.WriteLine("Loading Files..."); Settaggi setup = new Settaggi(); setup.Load(); string userInput = ""; // oggetto x connessione Connector IcoelSizer = new Connector(setup.IndirizzoIpSizer, setup.TcpPortSizerClient); // ora effettua un pò di letture/scritture try { Console.WriteLine("------------ TUTTE variety ------------"); var varList = IcoelSizer.GetVarietyList(false); var varietyData = IcoelSizer.GetLayoutForVarietyList(varList); if (varietyData != null) { DisplayVarietyLayout(varietyData); } Console.WriteLine(); Console.WriteLine("Premere un tasto x continuare..."); userInput = Console.ReadLine(); // solo attive Console.WriteLine("------------ solo attive ------------"); varList = IcoelSizer.GetVarietyList(); varietyData = IcoelSizer.GetLayoutForVarietyList(varList); if (varietyData != null) { DisplayVarietyLayout(varietyData); } Console.WriteLine(); Console.WriteLine("Premere un tasto x continuare..."); userInput = Console.ReadLine(); Console.WriteLine("------------ BATCH correnti ------------"); 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}"); } Console.WriteLine(); Console.WriteLine("Premere un tasto x continuare..."); userInput = Console.ReadLine(); Console.WriteLine("------------ Prova invio BATCH ------------"); // recupero GUID x variety e layout var varGuid = selVariety(IcoelSizer); var layGuid = selLayout(IcoelSizer, varGuid); GrowerInfo GrowerData = new GrowerInfo(); IcoelSizer.EnqueueBatch(GrowerData, varGuid, layGuid); IcoelSizer.GetCurrentBatch(); Console.WriteLine("Test completato"); Console.WriteLine("Premere un tasto x chiudere"); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine("ECCEZIONE" + ex.Message + ex.StackTrace); Console.ReadKey(); } } #endregion Private Methods } }