forked from ddrilling/AsbCloudServer
112 lines
4.0 KiB
C#
112 lines
4.0 KiB
C#
using AsbCloudApp.Data;
|
||
using AsbCloudApp.Data.SAUB;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace AsbCloudApp.Services
|
||
{
|
||
/// <summary>
|
||
/// Сервис телеметрии
|
||
/// </summary>
|
||
public interface ITelemetryService
|
||
{
|
||
/// <summary>
|
||
/// сервис временных зон
|
||
/// </summary>
|
||
ITimezoneService TimeZoneService { get; }
|
||
|
||
/// <summary>
|
||
/// трекер запросов
|
||
/// </summary>
|
||
ITelemetryTracker TelemetryTracker { get; }
|
||
|
||
/// <summary>
|
||
/// получить idWell по uid телеметрии
|
||
/// </summary>
|
||
/// <param name="uid"></param>
|
||
/// <returns></returns>
|
||
int? GetIdWellByTelemetryUid(string uid);
|
||
|
||
/// <summary>
|
||
/// Получить id телеметрии. Если её нет в БД, то добавить новую.
|
||
/// </summary>
|
||
/// <param name="uid"></param>
|
||
/// <returns></returns>
|
||
int GetOrCreateTelemetryIdByUid(string uid);
|
||
|
||
/// <summary>
|
||
/// получить временную зону скважины по idTelemetry
|
||
/// </summary>
|
||
/// <param name="idTelemetry"></param>
|
||
/// <returns></returns>
|
||
SimpleTimezoneDto GetTimezone(int idTelemetry);
|
||
|
||
// TODO: вероятно лишнее
|
||
/// <summary>
|
||
/// Список передающих в данный момент телеметрий
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
IEnumerable<TelemetryDto> GetTransmittingTelemetries();
|
||
|
||
// TODO: вероятно лишнее
|
||
/// <summary>
|
||
/// Получить дату получения последних данных
|
||
/// </summary>
|
||
/// <param name="idTelemetry"></param>
|
||
/// <param name="useUtc"></param>
|
||
/// <returns></returns>
|
||
DateTime GetLastTelemetryDate(int idTelemetry, bool useUtc = false);
|
||
|
||
/// <summary>
|
||
/// получить idTelemetry по IdWell
|
||
/// </summary>
|
||
/// <param name="idWell"></param>
|
||
/// <returns></returns>
|
||
int? GetIdTelemetryByIdWell(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);
|
||
|
||
// TODO: вероятно лишнее
|
||
/// <summary>
|
||
/// обновить данные о временной зоне (используется панелью)
|
||
/// </summary>
|
||
/// <param name="uid"></param>
|
||
/// <param name="telemetryTimeZoneInfo"></param>
|
||
/// <param name="token"></param>
|
||
/// <returns></returns>
|
||
Task UpdateTimezoneAsync(string uid, SimpleTimezoneDto telemetryTimeZoneInfo, 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);
|
||
|
||
// TODO: вероятно лишнее
|
||
/// <summary>
|
||
/// сохранить данные о запросе
|
||
/// </summary>
|
||
/// <param name="uid"></param>
|
||
/// <param name="remoteDate"></param>
|
||
void SaveRequestDate(string uid, DateTimeOffset remoteDate);
|
||
}
|
||
} |