using AsbCloudApp.Data; using AsbCloudApp.Data.SAUB; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// <summary> /// Сервис телеметрии /// </summary> public interface ITelemetryService { /// <summary> /// сервис временных зон /// </summary> ITimezoneService TimeZoneService { get; } /// <summary> /// получить idWell по uid телеметрии /// </summary> /// <param name="uid"></param> /// <returns></returns> int? GetIdWellByTelemetryUid(string uid); /// <summary> /// Получить id телеметрии. Если её нет в БД, то добавить новую. /// </summary> /// <param name="uid"></param> /// <returns></returns> TelemetryDto GetOrCreateTelemetryByUid(string uid); /// <summary> /// получить временную зону скважины по idTelemetry /// </summary> /// <param name="idTelemetry"></param> /// <returns></returns> SimpleTimezoneDto GetTimezone(int idTelemetry); /// <summary> /// получить idTelemetry по IdWell /// </summary> /// <param name="idWell"></param> /// <returns></returns> TelemetryBaseDto? GetOrDefaultTelemetryByIdWell(int idWell); /// <summary> /// получить диапазон дат за которые есть данные /// </summary> /// <param name="idTelemetry"></param> /// <returns></returns> DatesRangeDto GetDatesRange(int idTelemetry); /// <summary> /// обновить данные о телеметрии (используется панелью) /// </summary> /// <param name="uid"></param> /// <param name="info"></param> /// <param name="token"></param> /// <returns></returns> Task UpdateInfoAsync(string uid, TelemetryInfoDto info, CancellationToken token); /// <summary> /// Слить данные телеметрии в одну /// </summary> /// <param name="from">старая (исходная)</param> /// <param name="to">новая</param> /// <param name="token"></param> /// <returns></returns> Task<int> MergeAsync(int from, int to, CancellationToken token); } }