using AsbCloudApp.Data; using AsbCloudApp.Requests; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// <summary> /// сервис данных тех. процесса /// </summary> /// <typeparam name="TDto"></typeparam> public interface ITelemetryDataService<TDto> where TDto : ITelemetryData { /// <summary> /// получить данные тех. процесса /// </summary> /// <param name="idWell"></param> /// <param name="dateBegin"></param> /// <param name="intervalSec"></param> /// <param name="approxPointsCount">кол-во элементов до которых эти данные прореживаются</param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<TDto>> GetAsync(int idWell, DateTime dateBegin = default, double intervalSec = 600d, int approxPointsCount = 1024, CancellationToken token = default); Task<IEnumerable<TDto>> GetAsync(int idWell, TelemetryDataRequest request, CancellationToken token); /// <summary> /// Получение статистики за период /// </summary> /// <param name="idWell"></param> /// <param name="start"></param> /// <param name="end"></param> /// <param name="token"></param> /// <returns></returns> Task<DatesRangeDto?> GetRangeAsync(int idWell, DateTimeOffset start, DateTimeOffset end, CancellationToken token); /// <summary> /// добавить/изменить данные тех. процесса (используется панелью) /// </summary> /// <param name="uid"></param> /// <param name="dtos"></param> /// <param name="token"></param> /// <returns></returns> Task<int> UpdateDataAsync(string uid, IEnumerable<TDto> dtos, CancellationToken token); } }