Files
lux/EgwCoreLib.Lux.Data/Services/General/IDataLayerServices.cs
T
2026-03-25 08:24:25 +01:00

110 lines
4.6 KiB
C#

using EgwCoreLib.Lux.Data.Services.Internal;
namespace EgwCoreLib.Lux.Data.Services.General
{
/// <summary>
/// Interfaccia servizio livello dati (orchestrazione)
/// </summary>
public interface IDataLayerServices
{
#region Public Properties
public MessagePipe PipeBom { get; set; }
public MessagePipe PipeHwList { get; set; }
public MessagePipe PipeHwOpt { get; set; }
public MessagePipe PipePng { get; set; }
public MessagePipe PipeProd { get; set; }
public MessagePipe PipeProfElement { get; set; }
public MessagePipe PipeProfList { get; set; }
public MessagePipe PipeShape { get; set; }
public MessagePipe PipeSvg { get; set; }
public MessagePipe PipeUpdate { get; set; }
#endregion Public Properties
#region Public Methods
/// <summary>
/// Reset completo cache sistema (modalità async)
/// </summary>
/// <param name="cancellationToken">Token di cancellazione</param>
/// <returns>Task di completamento</returns>
Task FlushCacheAsync();
/// <summary>
/// Restituisce un dizionario di EventDto da usare nel planner
/// </summary>
/// <param name="dtStart">Data inizio</param>
/// <param name="dtEnd">Data fine</param>
/// <returns>Dizionario fasi -> eventi</returns>
Task<Dictionary<string, List<EventDto>>?> PlannerGetEventsAsync(DateTime dtStart, DateTime dtEnd);
/// <summary>
/// Esegue salvataggio BOM sul DB
/// </summary>
/// <param name="uID">UID dell'item offerta</param>
/// <param name="qMode">Mode della chiamata</param>
/// <param name="execEnvironment">Environment dell'item</param>
/// <param name="bomContent">BOM serializzata</param>
/// <returns>Task di completamento</returns>
Task SaveBomAsync(string uID, Egw.Window.Data.Enums.QuestionModes qMode, Constants.EXECENVIRONMENTS execEnvironment, string bomContent);
/// <summary>
/// Esegue salvataggio HardwareModelList sul DB
/// </summary>
/// <param name="uID">UID dell'item offerta di cui si è ricevuto la BOM</param>
/// <param name="execEnvironment">Environment dell'item</param>
/// <param name="rawContent">HardwareModelList serializzata</param>
/// <returns></returns>
Task SaveHmlAsync(string uID, Constants.EXECENVIRONMENTS execEnvironment, string rawContent);
/// <summary>
/// Esegue salvataggio ProdBalance (di un gruppo lavorazioni per riga ordine) sul DB
/// </summary>
/// <param name="uID">UID dell'item offerta</param>
/// <param name="rGroup">Prod Group di riferimento</param>
/// <param name="execEnvironment">Environment dell'item</param>
/// <param name="balance">Stima Balance serializzata</param>
/// <returns>True se salvato con successo</returns>
Task<bool> SaveProdBalanceAsync(string uID, string rGroup, Constants.EXECENVIRONMENTS execEnvironment, string balance);
/// <summary>
/// Esegue salvataggio ProdEstimate (per riga ordine) sul DB
/// </summary>
/// <param name="uID">UID dell'item offerta di cui si è ricevuto la ProdEstim</param>
/// <param name="execEnvironment">Environment dell'item</param>
/// <param name="prodEstim">Stima ProdEstimate serializzata</param>
/// <returns></returns>
Task<bool> SaveProdEstimateAsync(string uID, Constants.EXECENVIRONMENTS execEnvironment, string prodEstim);
/// <summary>
/// MockUp (fake) salvataggio ProfileListAsync sul DB
/// </summary>
/// <param name="uID">UID ricezione (default tipicamente)</param>
/// <param name="execEnvironment">Environment dell'item</param>
/// <param name="rawContent">ProfileListAsync serializzata</param>
/// <returns></returns>
Task<bool> SaveProfileListAsync(string uID, Constants.EXECENVIRONMENTS execEnvironment, string rawContent);
/// <summary>
/// MockUp (fake) salvataggio ProfileThreshold sul DB
/// </summary>
/// <param name="uID">UID del profilo</param>
/// <param name="execEnvironment">Environment dell'item</param>
/// <param name="rawThreshold">ThresholdList serializzata</param>
/// <param name="rawData">Info profile data serializzati</param>
/// <returns></returns>
Task<bool> SaveProfileThreshAsync(string uID, Constants.EXECENVIRONMENTS execEnvironment, string rawThreshold, string rawData);
#endregion Public Methods
}
}