forked from ddrilling/AsbCloudServer
96 lines
3.2 KiB
C#
96 lines
3.2 KiB
C#
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<TelemetryBaseDto> 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);
|
||
} |