71 lines
3.2 KiB
C#
71 lines
3.2 KiB
C#
using EgwCoreLib.Utils;
|
|
using MP.Core.DTO;
|
|
using MP.Data.DbModels.Utils;
|
|
using MP.Data.DTO;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace MP.Data.Services.Utils
|
|
{
|
|
public interface IStatsDetailService
|
|
{
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Recupera le statistiche di dettaglio per un periodo specificato, con filtri opzionali su ambiente e tipo.
|
|
/// Utilizza la cache automaticamente.
|
|
/// </summary>
|
|
/// <param name="dtStart">Data inizio periodo</param>
|
|
/// <param name="dtEnd">Data fine periodo</param>
|
|
/// <param name="sDest">Filtro opzionale per destinazione (default: vuoto = tutti)</param>
|
|
/// <param name="sType">Filtro opzionale per tipo (default: vuoto = tutti)</param>
|
|
Task<List<StatsDetailModel>> GetFiltAsync(DateTime dtStart, DateTime dtEnd, string sDest = "", string sType = "");
|
|
|
|
/// <summary>
|
|
/// Restituisce un Pareto degli eventi (in forma originale) più frequenti dato periodo ed eventuale filtro Destinazione/Tipo
|
|
/// </summary>
|
|
/// <param name="dtStart">Data inizio periodo</param>
|
|
/// <param name="dtEnd">Data fine periodo</param>
|
|
/// <param name="maxRec"></param>
|
|
/// <param name="sDest">Filtro opzionale per destinazione (default: vuoto = tutti)</param>
|
|
/// <param name="sType">Filtro opzionale per tipo (default: vuoto = tutti)</param>
|
|
/// <returns></returns>
|
|
Task<List<StatsDetailModel>> GetParetoAsync(DateTime dtStart, DateTime dtEnd, int maxRec, string sDest = "", string sType = "");
|
|
|
|
/// <summary>
|
|
/// Restituisce un dizionario di elaborazioni di tipo Pareto
|
|
/// Ogni elaborazione contiene Dictionary in forma pareto per una data statistica
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
//Task<Dictionary<string, List<StatDataDTO>>> GetParetoStatsDayAsync();
|
|
Task<List<StatInfoDto>> GetParetoStatsDayAsync();
|
|
|
|
|
|
/// <summary>
|
|
/// Recupera il range di periodi valido per le chiamate di dettaglio.
|
|
/// Utilizza la cache automaticamente.
|
|
/// </summary>
|
|
/// <param name="sEnvir">Ambiente filtrato</param>
|
|
/// <param name="sType">Tipo filtrato</param>
|
|
Task<DtUtils.Periodo> GetRangeAsync(string sEnvir, string sType);
|
|
|
|
/// <summary>
|
|
/// Helper conversione dati dettaglio in statistiche da inviare a ChartJS
|
|
/// </summary>
|
|
/// <param name="rawData"></param>
|
|
/// <param name="showCount">metrica conteggio/avgDuration</param>
|
|
/// <returns></returns>
|
|
List<ChartSeriesDto> GetTimeSeriesData(List<StatsDetailModel> rawData, bool showCount);
|
|
|
|
/// <summary>
|
|
/// Inserisce o aggiorna in batch le statistiche di dettaglio nel database.
|
|
/// Opzionalmente elimina i record precedenti nel periodo specificato.
|
|
/// </summary>
|
|
/// <param name="listRecords">Elenco dei record da inserire/aggiornare</param>
|
|
/// <param name="removeOld">Se true elimina preventivamente i record nel periodo richiesto</param>
|
|
Task<int> UpsertManyAsync(List<StatsDetailModel> listRecords, bool removeOld);
|
|
|
|
#endregion Public Methods
|
|
}
|
|
} |