using AsbCloudApp.Data; using AsbCloudApp.Data.SAUB; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// /// Сервис телеметрии /// public interface ITelemetryService { /// /// сервис временных зон /// ITimezoneService TimeZoneService { get; } /// /// трекер запросов /// ITelemetryTracker TelemetryTracker { get; } /// /// получить idWell по uid телеметрии /// /// /// int? GetIdWellByTelemetryUid(string uid); /// /// Получить id телеметрии. Если её нет в БД, то добавить новую. /// /// /// int GetOrCreateTelemetryIdByUid(string uid); /// /// получить временную зону скважины по idTelemetry /// /// /// SimpleTimezoneDto GetTimezone(int idTelemetry); // TODO: вероятно лишнее /// /// Список передающих в данный момент телеметрий /// /// IEnumerable GetTransmittingTelemetries(); // TODO: вероятно лишнее /// /// Получить дату получения последних данных /// /// /// /// DateTime GetLastTelemetryDate(int idTelemetry, bool useUtc = false); /// /// получить idTelemetry по IdWell /// /// /// int? GetIdTelemetryByIdWell(int idWell); /// /// получить диапазон дат за которые есть данные /// /// /// DatesRangeDto GetDatesRange(int idTelemetry); /// /// обновить данные о телеметрии (используется панелью) /// /// /// /// /// Task UpdateInfoAsync(string uid, TelemetryInfoDto info, CancellationToken token); // TODO: вероятно лишнее /// /// обновить данные о временной зоне (используется панелью) /// /// /// /// /// Task UpdateTimezoneAsync(string uid, SimpleTimezoneDto telemetryTimeZoneInfo, CancellationToken token); /// /// Слить данные телеметрии в одну /// /// старая (исходная) /// новая /// /// Task MergeAsync(int from, int to, CancellationToken token); // TODO: вероятно лишнее /// /// сохранить данные о запросе /// /// /// void SaveRequestDate(string uid, DateTimeOffset remoteDate); } }