Update ComClient

This commit is contained in:
Samuele Locatelli
2022-05-20 09:23:06 +02:00
parent d31e5b4ec3
commit 6ec219a5a3
3 changed files with 138 additions and 63 deletions
+53 -10
View File
@@ -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();
}
}
/// <summary>
/// Generazione di una list di info sui dati variety
/// </summary>
/// <param name="varietiesList"></param>
/// <returns></returns>
internal static void DisplayVarietyLayout(Dictionary<Variety, Layout[]> 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}");
}
}
}
}
}
}
+10 -1
View File
@@ -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
}
}
/// <summary>
/// Dispose dell'oggetto
/// </summary>
public void Dispose()
{
Close();
}
#endregion Internal Methods
#region Private Properties
+75 -52
View File
@@ -24,45 +24,23 @@ namespace EgwProxy.Icoel
#region Public Methods
public List<string> DisplayVarietyLayout(Variety[] varietiesList)
/// <summary>
/// Restituisce un dictionary di layout validi x un array di varietà fornito
/// </summary>
/// <param name="varietiesList"></param>
/// <returns></returns>
public Dictionary<Variety, Layout[]> GetLayoutForVarietyList(Variety[] varietiesList)
{
List<string> outVal = new List<string>();
Dictionary<Variety, Layout[]> outVal = new Dictionary<Variety, Layout[]>();
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;
}
/// <summary>
/// Restituisce un dictionary di varietà e relativi layout
/// </summary>
/// <param name="varietiesList"></param>
/// <returns></returns>
public Dictionary<Variety, Layout[]> GetLayoutAndVariety()
{
Dictionary<Variety, Layout[]> outVal = new Dictionary<Variety, Layout[]>();
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;
}
/// <summary>
/// Restituisce elenco delel Variety
/// </summary>
/// <returns></returns>
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<int, Batch> GetCurrentBatch()
{
//Client = new CompacClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
if (Client == null || !Client.connected)
Dictionary<int, Batch> outVal = new Dictionary<int, Batch>();
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