From bd8de9afc2598f5068e09f6a306d41d40d05a86f Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Mon, 25 Nov 2024 09:41:11 +0500 Subject: [PATCH] Add TimestampedSet documentation --- Persistence.Database/EFExtensions.cs | 7 --- .../Repositories/TimestampedSetRepository.cs | 7 +++ .../Repositories/ITimestampedSetRepository.cs | 48 +++++++++++++++++++ 3 files changed, 55 insertions(+), 7 deletions(-) diff --git a/Persistence.Database/EFExtensions.cs b/Persistence.Database/EFExtensions.cs index c424aa3..d60d768 100644 --- a/Persistence.Database/EFExtensions.cs +++ b/Persistence.Database/EFExtensions.cs @@ -1,13 +1,6 @@ using Microsoft.EntityFrameworkCore.ChangeTracking; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Text.Json.Serialization; using System.Text.Json; -using System.Threading.Tasks; namespace Persistence.Database; diff --git a/Persistence.Repository/Repositories/TimestampedSetRepository.cs b/Persistence.Repository/Repositories/TimestampedSetRepository.cs index a81f7f1..a190d71 100644 --- a/Persistence.Repository/Repositories/TimestampedSetRepository.cs +++ b/Persistence.Repository/Repositories/TimestampedSetRepository.cs @@ -5,6 +5,13 @@ using Persistence.Models; using Persistence.Repositories; namespace Persistence.Repository.Repositories; + +/// +/// Репозиторий для хранения разных наборов данных временных рядов. +/// idDiscriminator - идентифицирует конкретный набор данных, прим.: циклы измерения АСИБР, или отчет о DrillTest. +/// idDiscriminator формируют клиенты и только им известно что они обозначают. +/// Так как данные приходят редко, то их прореживания для построения графиков не предусмотрено. +/// public class TimestampedSetRepository : ITimestampedSetRepository { private readonly IPersistenceDbContext db; diff --git a/Persistence/Repositories/ITimestampedSetRepository.cs b/Persistence/Repositories/ITimestampedSetRepository.cs index 3e853f1..2966a82 100644 --- a/Persistence/Repositories/ITimestampedSetRepository.cs +++ b/Persistence/Repositories/ITimestampedSetRepository.cs @@ -1,11 +1,59 @@ using Persistence.Models; namespace Persistence.Repositories; + +/// +/// Репозиторий для хранения разных наборов данных временных рядов. +/// idDiscriminator - идентифицирует конкретный набор данных, прим.: циклы измерения АСИБР, или отчет о DrillTest. +/// idDiscriminator формируют клиенты и только им известно что они обозначают. +/// Так как данные приходят редко, то их прореживания для построения графиков не предусмотрено. +/// public interface ITimestampedSetRepository { + /// + /// Количество записей по указанному набору в БД. Для пагинации. + /// + /// + /// + /// Task Count(Guid idDiscriminator, CancellationToken token); + + /// + /// Получение данных с фильтрацией. Значение фильтра null - отключен + /// + /// Идентификатор набора + /// Фильтр позднее даты + /// Фильтр свойств набора. Можно запросить только некоторые свойства из набора + /// + /// + /// + /// Task> Get(Guid idDiscriminator, DateTimeOffset? geTimestamp, IEnumerable? props, int skip, int take, CancellationToken token); + + /// + /// Диапазон дат за которые есть данные + /// + /// + /// + /// Task GetDatesRange(Guid idDiscriminator, CancellationToken token); + + /// + /// Получить последние данные + /// + /// + /// + /// + /// + /// Task> GetLast(Guid idDiscriminator, IEnumerable? props, int take, CancellationToken token); + + /// + /// Добавление новых данных + /// + /// + /// + /// + /// Task InsertRange(Guid idDiscriminator, IEnumerable sets, CancellationToken token); } \ No newline at end of file