201 lines
6.5 KiB
C#
201 lines
6.5 KiB
C#
using EgwProxy.Icoel.Compac;
|
|
using EgwProxy.Icoel.SizerService;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace EgwProxy.Icoel
|
|
{
|
|
public class Connector
|
|
{
|
|
#region Public Constructors
|
|
|
|
/// <summary>
|
|
/// Inizializazzione classe con salvataggio ip/porta del webservice del sizer
|
|
/// </summary>
|
|
/// <param name="ipAddress"></param>
|
|
/// <param name="tcpPort"></param>
|
|
public Connector(string ipAddress, string tcpPort)
|
|
{
|
|
this.ipAddress = ipAddress;
|
|
this.tcpPort = tcpPort;
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Verifica il fornitore e se non ci fosse crea
|
|
/// </summary>
|
|
/// <param name="GrowerData"></param>
|
|
public void CheckGrower(GrowerInfo GrowerData)
|
|
{
|
|
using (var Client = new ComClient(ipAddress, tcpPort))
|
|
{
|
|
Client.CheckGrower(GrowerData.GrowerCode, GrowerData.GrowerName);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Invia un lotto in coda produzione sul sizer
|
|
/// </summary>
|
|
/// <param name="newBatch">Batch da accodare</param>
|
|
public void EnqueueBatch(GrowerInfo GrowerData, Guid varGuid, Guid layGuid)
|
|
{
|
|
using (var Client = new ComClient(ipAddress, tcpPort))
|
|
{
|
|
string sizingProfile = Client.GetCurrentBatch().SizingProfileName;
|
|
Batch newBatch = CreateBatch(GrowerData, varGuid, layGuid, sizingProfile);
|
|
Client.MettiLottoInCoda(newBatch);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Recupera elenco dei Batch correnti (su L1 SX e L2 DX)
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public Dictionary<int, Batch> GetCurrentBatch()
|
|
{
|
|
Dictionary<int, Batch> outVal = new Dictionary<int, Batch>();
|
|
using (var Client = new ComClient(ipAddress, tcpPort))
|
|
{
|
|
//Client.GetCurrentBatch();
|
|
for (int i = 1; i <= 2; i++)
|
|
{
|
|
var batch = Client.GetCurrentBatchByLane(i);
|
|
outVal.Add(i, batch);
|
|
}
|
|
}
|
|
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[]>();
|
|
using (var 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);
|
|
}
|
|
}
|
|
// restituisco dati
|
|
return outVal;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Restituisce un array di Layout validi data Guid della Variety
|
|
/// </summary>
|
|
/// <param name="varietiesList"></param>
|
|
/// <returns></returns>
|
|
public Layout[] GetLayoutForVariety(Guid varGuid)
|
|
{
|
|
Layout[] outVal = new Layout[1];
|
|
using (var Client = new ComClient(ipAddress, tcpPort))
|
|
{
|
|
// recupero layout della varietà
|
|
var layoutList = Client.GetLayouts(varGuid);
|
|
outVal = layoutList;
|
|
}
|
|
// restituisco dati
|
|
return outVal;
|
|
}
|
|
|
|
/// <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)
|
|
{
|
|
Dictionary<Variety, Layout[]> outVal = new Dictionary<Variety, Layout[]>();
|
|
using (var Client = new ComClient(ipAddress, tcpPort))
|
|
{
|
|
foreach (var item in varietiesList)
|
|
{
|
|
// recupero layout della varietà
|
|
var layoutList = Client.GetLayouts(item.Id);
|
|
outVal.Add(item, layoutList);
|
|
}
|
|
}
|
|
// restituisco dati
|
|
return outVal;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Restituisce elenco delle Variety
|
|
/// </summary>
|
|
/// <param name="onlyActive">Solo attive (true) o tutte (false)</param>
|
|
/// <returns></returns>
|
|
public Variety[] GetVarietyList(bool onlyActive = true)
|
|
{
|
|
Variety[] varietiesList;
|
|
using (var cClient = new ComClient(ipAddress, tcpPort))
|
|
{
|
|
if (onlyActive)
|
|
{
|
|
varietiesList = cClient.GetActiveVarieties();
|
|
}
|
|
else
|
|
{
|
|
varietiesList = cClient.GetAllVarieties();
|
|
}
|
|
}
|
|
return varietiesList;
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Private Properties
|
|
|
|
/// <summary>
|
|
/// Inidirizzo IP
|
|
/// </summary>
|
|
private string ipAddress { get; set; } = "127.0.0.1";
|
|
|
|
/// <summary>
|
|
/// Porta del webservice (SOAP)
|
|
/// </summary>
|
|
private string tcpPort { get; set; } = "8001";
|
|
|
|
#endregion Private Properties
|
|
|
|
#region Private Methods
|
|
|
|
/// <summary>
|
|
/// Genera un obj batch dati i parametri necessari
|
|
/// </summary>
|
|
/// <param name="GrowerData"></param>
|
|
/// <param name="VarietyId"></param>
|
|
/// <param name="LayoutId"></param>
|
|
/// <param name="SizingProfileName"></param>
|
|
/// <returns></returns>
|
|
private Batch CreateBatch(GrowerInfo GrowerData, Guid VarietyId, Guid LayoutId, string SizingProfileName)
|
|
{
|
|
var batch = new Batch();
|
|
|
|
batch.AvoidLayoutChange = true;
|
|
batch.AvoidSavingOldLayouts = true;
|
|
|
|
batch.GrowerCode = GrowerData.GrowerCode;
|
|
batch.Comments = new string[GrowerData.Comments.Count];
|
|
batch.Comments = GrowerData.Comments.ToArray();
|
|
|
|
batch.VarietyId = VarietyId;
|
|
batch.LayoutId = LayoutId;
|
|
batch.SizingProfileName = SizingProfileName;
|
|
|
|
return batch;
|
|
}
|
|
|
|
#endregion Private Methods
|
|
}
|
|
} |