44 lines
1.7 KiB
C#
44 lines
1.7 KiB
C#
using DD.Persistence.Models;
|
||
|
||
namespace DD.Persistence.Client.Clients.Interfaces;
|
||
|
||
/// <summary>
|
||
/// Клиент для работы с временными данными
|
||
/// </summary>
|
||
/// <typeparam name="TDto"></typeparam>
|
||
public interface ITimeSeriesClient<TDto> : IDisposable where TDto : class, new()
|
||
{
|
||
/// <summary>
|
||
/// Добавление записей
|
||
/// </summary>
|
||
/// <param name="dtos"></param>
|
||
/// <param name="token"></param>
|
||
/// <returns></returns>
|
||
Task<int> AddRange(IEnumerable<TDto> dtos, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Получить список объектов, удовлетворяющий диапазону дат
|
||
/// </summary>
|
||
/// <param name="dateBegin"></param>
|
||
/// <param name="dateEnd"></param>
|
||
/// <param name="token"></param>
|
||
/// <returns></returns>
|
||
Task<IEnumerable<TDto>> Get(DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Получить диапазон дат, для которых есть данные в репозитории
|
||
/// </summary>
|
||
/// <param name="token"></param>
|
||
/// <returns></returns>
|
||
Task<DatesRangeDto?> GetDatesRange(CancellationToken token);
|
||
|
||
/// <summary>
|
||
/// Получить список объектов с прореживанием, удовлетворяющий диапазону дат
|
||
/// </summary>
|
||
/// <param name="dateBegin"></param>
|
||
/// <param name="intervalSec"></param>
|
||
/// <param name="approxPointsCount"></param>
|
||
/// <param name="token"></param>
|
||
/// <returns></returns>
|
||
Task<IEnumerable<TDto>> GetResampledData(DateTimeOffset dateBegin, double intervalSec = 600, int approxPointsCount = 1024, CancellationToken token = default);
|
||
} |