DD.WellWorkover.Cloud/AsbCloudApp/Services/ITelemetryService.cs

96 lines
3.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using AsbCloudApp.Data;
using AsbCloudApp.Data.SAUB;
using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.IO;
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="idsWells">ключи скважин</param>
/// <returns></returns>
IEnumerable<TelemetryDto> GetOrDefaultTelemetriesByIdsWells(IEnumerable<int> idsWells);
/// <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="request"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<VersionDto>> GetVersionsAsync(VersionRequest request, 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);
/// <summary>
/// Получить телеметрию по последней дате
/// </summary>
/// <param name="from"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<Stream> GetTelemetriesInfoByLastData(DateTimeOffset from, CancellationToken token);
}