using AsbCloudApp.Data; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// <summary> /// The wits record repository. /// </summary> public interface IWitsRecordRepository<TDto> where TDto : ITelemetryData { /// <summary> /// Добавить новые данные /// </summary> /// <param name="idTelemetry">The id telemetry.</param> /// <param name="dtos">The dtos.</param> /// <param name="token">The token.</param> /// <returns>A Task.</returns> Task SaveDataAsync(int idTelemetry, IEnumerable<TDto> dtos, CancellationToken token); /// <summary> /// Получить данные по телеметрии за период /// </summary> /// <param name="idTelemetry"></param> /// <param name="begin"></param> /// <param name="end"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<TDto>> GetAsync(int idTelemetry, DateTime begin, DateTime end, CancellationToken token); /// <summary> /// получить массив из одной записи самой поздней по дате /// </summary> /// <param name="idTelemetry">The id telemetry.</param> /// <param name="token">The token.</param> /// <returns>A Task.</returns> Task<IEnumerable<TDto>> GetLastAsync(int idTelemetry, CancellationToken token); /// <summary> /// получить статистику по всему архиву: дата самой ранней записи, самой поздней и общее количество /// </summary> /// <param name="idTelemetry">The id telemetry.</param> /// <param name="token">The token.</param> /// <returns>A Task.</returns> Task<(DateTime begin, DateTime end, int count)?> GetStatAsync(int idTelemetry, CancellationToken token); } }