Files
Mapo-IOB-WIN/Icoel.Soap/Connector.cs
T
Samuele Locatelli b9e4ed0c70 refresh docs
2022-05-14 12:49:40 +02:00

293 lines
11 KiB
C#

using BinsTracker.INI;
using Icoel.Soap.Compac;
using Icoel.Soap.INI;
using Icoel.Soap.SizerService;
using System;
namespace Icoel.Soap
{
public static class Connector
{
#region Public Methods
public static void DisplayVarietyLayout(Variety[] varietiesList)
{
if (Client == null || !Client.connected)
{
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
}
foreach (var item in varietiesList)
{
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}");
}
// recupero layout della varietà
var layoutList = Client.GetLayouts(item.Id);
Console.WriteLine(" - LAYOUTS");
foreach (var layout in layoutList)
{
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
// ciclo su sub info
#if false
Console.WriteLine(" - Assignments");
foreach (var assign in layout.Assignments)
{
Console.WriteLine($" Key: {assign.Key} | Val: {assign.Value}");
}
#endif
Console.WriteLine(" - Products");
foreach (var product in layout.Products)
{
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
}
}
}
// chiudo se fosse rimasto aperto
Client.Close();
}
public static void Load()
{
Settaggi = new Settaggi();
Details = new BatchDetails();
Settaggi.Load();
Details.Load();
}
public static void MettiLottoInCoda()
{
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
Client.VerificaEsistenzaGrower(Details.GrowerCode, Details.GrowerName);
// recupero varietà x selezione
var varList = Connector.RecuperaVarietyLayout();
int idxVar = -1;
int idxLay = -1;
Guid varGuid = Guid.NewGuid();
Guid layGuid = Guid.NewGuid();
Console.WriteLine("--------------------");
Console.WriteLine("Varietà disponibili:");
Console.WriteLine("--------------------");
DisplayVarietyLayout(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)
{
varGuid = varList[idxVar - 1].Id;
}
else
{
idxVar = -1;
}
}
}
if (Client == null || !Client.connected)
{
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
} // recupero layout della varietà
var layoutList = Client.GetLayouts(varGuid);
// 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)
{
layGuid = layoutList[idxLay - 1].Id;
}
else
{
idxLay = -1;
}
}
}
// compongo batch e metto in coda
var newBatch = GeneraBatchDaSelezione(varGuid, layGuid, Client.GetCurrentBatch().SizingProfileName);
Client.MettiLottoInCoda(newBatch);
Client.Close();
}
public static void MettiLottoInCodaDefault()
{
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
Client.VerificaEsistenzaGrower(Details.GrowerCode, Details.GrowerName);
Client.MettiLottoInCoda(GeneraBatchDaFile());
Client.Close();
}
public static Variety[] RecuperaVarietyLayout()
{
//Client = new CompacClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
if (Client == null || !Client.connected)
{
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
}
Variety[] varietiesList;
varietiesList = Client.GetActiveVarieties();
#if false
foreach (var item in varietiesList)
{
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}");
}
// recupero layout della varietà
var layoutList = Client.GetLayouts(item.Id);
Console.WriteLine(" - LAYOUTS");
foreach (var layout in layoutList)
{
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
// ciclo su sub info
Console.WriteLine(" - Assignments");
foreach (var assign in layout.Assignments)
{
Console.WriteLine($" Key: {assign.Key} | Val: {assign.Value}");
}
Console.WriteLine(" - Products");
foreach (var product in layout.Products)
{
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
}
}
}
#endif
Client.Close();
return varietiesList;
}
public static void VerificaLottoCorrente()
{
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
//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}");
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();
}
#endregion Public Methods
#region Internal Properties
/// <summary>
/// Oggetto di connessione client
/// </summary>
internal static ComClient Client { get; set; }
/// <summary>
/// Dettaglio dei batch
/// </summary>
internal static BatchDetails Details { get; set; }
/// <summary>
/// Parametri di setup
/// </summary>
internal static Settaggi Settaggi { get; set; }
#endregion Internal Properties
#region Private Methods
private static Batch GeneraBatchDaFile()
{
var batch = new Batch();
batch.GrowerCode = Details.GrowerCode;
batch.AvoidLayoutChange = true;
batch.AvoidSavingOldLayouts = true;
batch.Comments = new string[3];
batch.Comments[0] = Details.Comment1;
batch.Comments[1] = Details.Comment2;
batch.Comments[2] = Details.Comment3;
batch.VarietyId = Client.GetCurrentBatch().VarietyId;
batch.LayoutId = Client.GetCurrentBatch().LayoutId;
batch.SizingProfileName = Client.GetCurrentBatch().SizingProfileName;
return batch;
}
private static Batch GeneraBatchDaSelezione(Guid VarietyId, Guid LayoutId, string SizingProfileName)
{
var batch = new Batch();
batch.AvoidLayoutChange = true;
batch.AvoidSavingOldLayouts = true;
batch.GrowerCode = Details.GrowerCode;
batch.Comments = new string[3];
batch.Comments[0] = Details.Comment1;
batch.Comments[1] = Details.Comment2;
batch.Comments[2] = Details.Comment3;
batch.VarietyId = VarietyId;
batch.LayoutId = LayoutId;
batch.SizingProfileName = SizingProfileName;
//batch.VarietyId = Client.GetCurrentBatch().VarietyId;
//batch.LayoutId = Client.GetCurrentBatch().LayoutId;
//batch.SizingProfileName = Client.GetCurrentBatch().SizingProfileName;
return batch;
}
#endregion Private Methods
}
}