forked from ddrilling/AsbCloudServer
62 lines
2.6 KiB
C#
62 lines
2.6 KiB
C#
|
using AsbCloudApp.Data;
|
|||
|
using AsbCloudApp.Requests;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
|
|||
|
namespace AsbCloudApp.Repositories
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Хранилище кеша
|
|||
|
/// </summary>
|
|||
|
/// <typeparam name="TDto"></typeparam>
|
|||
|
public interface ITelemetryDataCache<TDto> where TDto : ITelemetryData
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// добавить в кеш чанк записей по телеметрии
|
|||
|
/// </summary>
|
|||
|
/// <param name="idTelemetry"></param>
|
|||
|
/// <param name="range"></param>
|
|||
|
void AddRange(int idTelemetry, IEnumerable<TDto> range);
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// вернуть последнюю записть
|
|||
|
/// </summary>
|
|||
|
/// <param name="idTelemetry"></param>
|
|||
|
/// <returns></returns>
|
|||
|
TDto? GetLastOrDefault(int idTelemetry);
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Получить кешированые записи
|
|||
|
/// </summary>
|
|||
|
/// <param name="idTelemetry"></param>
|
|||
|
/// <param name="dateBegin"></param>
|
|||
|
/// <param name="intervalSec"></param>
|
|||
|
/// <param name="approxPointsCount">приблизительное кол-во возвращаемых записей после их прореживания</param>
|
|||
|
/// <returns></returns>
|
|||
|
IEnumerable<TDto>? GetOrDefault(int idTelemetry, DateTime dateBegin, double intervalSec = 600, int approxPointsCount = 1024);
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Получить кешированые записи
|
|||
|
/// </summary>
|
|||
|
/// <param name="idTelemetry"></param>
|
|||
|
/// <param name="request"></param>
|
|||
|
/// <returns></returns>
|
|||
|
IEnumerable<TDto>? GetOrDefault(int idTelemetry, TelemetryDataRequest request);
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Получить диапазон дат телеметрии.
|
|||
|
/// Дата первой записи телеметрии храниться отдельно и запоняется при инициализации
|
|||
|
/// </summary>
|
|||
|
/// <param name="idTelemetry"></param>
|
|||
|
/// <returns></returns>
|
|||
|
DatesRangeDto? GetOrDefaultDataDateRange(int idTelemetry);
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Получение первой и последней записи телеметрии.
|
|||
|
/// Первая запись телеметрии храниться отдельно и запоняется при инициализации
|
|||
|
/// </summary>
|
|||
|
/// <param name="idTelemetry"></param>
|
|||
|
/// <returns></returns>
|
|||
|
(TDto First, TDto Last)? GetOrDefaultFirstLast(int idTelemetry);
|
|||
|
}
|
|||
|
}
|