using AsbCloudApp.Data; using AsbCloudApp.Requests; using AsbCloudInfrastructure.Services.SAUB; using System; using System.Collections.Generic; namespace AsbCloudApp.Repositories; /// /// Хранилище кеша /// /// public interface ITelemetryDataCache where TDto : ITelemetryData { /// /// добавить в кеш чанк записей по телеметрии /// /// /// void AddRange(int idTelemetry, IEnumerable range); /// /// вернуть последнюю запись /// /// /// TDto? GetLastOrDefault(int idTelemetry); /// /// Получить кешированые записи /// /// /// /// /// приблизительное кол-во возвращаемых записей после их прореживания /// IEnumerable? GetOrDefault(int idTelemetry, DateTime dateBegin, double intervalSec = 600, int approxPointsCount = 1024); /// /// Получить кешированые записи /// /// /// /// IEnumerable? GetOrDefault(int idTelemetry, TelemetryDataRequest request); /// /// Диапазон дат находящийся в кеше /// /// /// DatesRangeDto? GetOrDefaultCachedDataDateRange(int idTelemetry); /// /// Получить диапазон дат телеметрии. /// Дата первой записи телеметрии храниться отдельно и запоняется при инициализации /// /// /// DatesRangeDto? GetOrDefaultWellDataDateRange(int idTelemetry); /// /// Получение первой и последней записи телеметрии. /// Первая запись телеметрии храниться отдельно и запоняется при инициализации /// /// /// (TDto First, TDto Last)? GetOrDefaultFirstLast(int idTelemetry); /// /// статистика хранимой телеметрии по всем кешированым /// /// IEnumerable GetStat(); /// /// Получить ключи телеметрии по параметрам запроса /// /// /// IEnumerable GetIds(TelemetryDataRequest request); }