101 lines
4.0 KiB
C#
101 lines
4.0 KiB
C#
namespace EgwCoreLib.Lux.Data.Services.General
|
|
{
|
|
/// <summary>
|
|
/// Interfaccia servizio indice richieste
|
|
/// </summary>
|
|
public interface ICalcRuidService
|
|
{
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Metodo Creazione nuova richiesta
|
|
/// </summary>
|
|
/// <param name="envir">Environment calcolo</param>
|
|
/// <param name="tipo">Tipologia richiesta</param>
|
|
/// <param name="uid">UID di riferimento</param>
|
|
/// <returns>restituisce il valore del RUID (ID univoco richiesta)</returns>
|
|
Task<string> AddRequestAsync(string envir, string tipo, string uid);
|
|
|
|
/// <summary>
|
|
/// Effettua pulizia delle statistiche collezionate una volta migrate sul DB
|
|
/// </summary>
|
|
/// <param name="keysToDelete">Lista delle chiavi da eliminare da Redis</param>
|
|
/// <returns></returns>
|
|
Task CleanupStatsAsync(List<RedisValue> keysToDelete);
|
|
|
|
/// <summary>
|
|
/// Metodo di Aggiornamento richiesta esistente
|
|
/// </summary>
|
|
/// <param name="ruid">RUID richiesta</param>
|
|
/// <returns>HashKey della richiesta</returns>
|
|
Task<string> CompleteRequestAsync(string ruid);
|
|
|
|
/// <summary>
|
|
/// Espostazione statistiche da REDIS al DB
|
|
/// </summary>
|
|
/// <param name="clearRedisAfterExport">Se true, cancella le statistiche da Redis dopo l'esportazione</param>
|
|
/// <returns>True se esportazione completata con successo</returns>
|
|
Task ExportStatsToDbAsync(bool clearRedisAfterExport = false);
|
|
|
|
/// <summary>
|
|
/// Metodo Recupero combinazioni envir/tipo
|
|
/// </summary>
|
|
/// <returns>Elenco di combinazioni envir|tipo</returns>
|
|
Task<IEnumerable<(string env, string tipo)>> GetCombinationsAsync();
|
|
|
|
/// <summary>
|
|
/// Gestione statistiche (da rivedere)
|
|
/// </summary>
|
|
/// <returns>Elenco di statistiche detail da Redis</returns>
|
|
Task<List<StatsDetailModel>> GetOldStatsFromRedisAsync();
|
|
|
|
/// <summary>
|
|
/// Metodo Recupero richieste per UID
|
|
/// </summary>
|
|
/// <param name="uid">UID di riferimento</param>
|
|
/// <returns>Elenco di RUID associati all'UID</returns>
|
|
Task<IEnumerable<string>> GetRequestsByUidAsync(string uid);
|
|
|
|
/// <summary>
|
|
/// Metodo Statistiche aggregate
|
|
/// </summary>
|
|
/// <returns>Dati statistici in tempo reale</returns>
|
|
Task<StatsRealtimeDto> GetStatsAsync();
|
|
|
|
/// <summary>
|
|
/// Restituisce le statistiche per range date
|
|
/// </summary>
|
|
/// <param name="from">DataOra inizio</param>
|
|
/// <param name="to">DataOra fine</param>
|
|
/// <returns>Range di statistiche</returns>
|
|
Task<StatsRangeDto> GetStatsRangeAsync(DateTime from, DateTime to);
|
|
|
|
/// <summary>
|
|
/// Restituisce le statistiche RealTime da REDIS
|
|
/// </summary>
|
|
/// <param name="reqGroup">Raggruppamento orario richiesto (giornaliero/orario)</param>
|
|
/// <param name="reqTag">Tipologia dati richiesti (environment/mode)</param>
|
|
/// <param name="dtFrom">DataOra inizio recupero</param>
|
|
///
|
|
/// <returns>Elenco di dati statistici in tempo reale</returns>
|
|
Task<List<RealtimeProcDto>> RealTimeDataStats(RuidGroupMode reqGroup, RuidTagMode reqTag, DateTime dtFrom);
|
|
|
|
/// <summary>
|
|
/// Restituisce elenco statistiche aggregate disponibili dal DB
|
|
/// </summary>
|
|
/// <param name="from">Data inizio</param>
|
|
/// <param name="to">Data fine</param>
|
|
///
|
|
/// <returns>Elenco di statistiche aggregate dal DB</returns>
|
|
Task<List<StatsAggregatedModel>> StatsAggrListAsync(DateTime from, DateTime to);
|
|
|
|
/// <summary>
|
|
/// Restituisce il periodo valido x dati aggregati
|
|
/// </summary>
|
|
///
|
|
/// <returns>Periodo valido per dati aggregati</returns>
|
|
Task<EgwCoreLib.Utils.DtUtils.Periodo> StatsAggrRangeAsync();
|
|
|
|
#endregion Public Methods
|
|
}
|
|
} |