using AsbCloudApp.Data; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Repositories; /// /// Интерфейс для работы с объектами, содержащими историю изменений /// /// /// public interface IChangeLogQueryBuilder where TDto : IId { /// /// Применение запроса /// /// Запрос /// IChangeLogQueryBuilderWithKnownTimezone ApplyRequest(TRequest request); /// /// Материализация записей /// /// /// /// Task> GetData(TimeSpan offset, CancellationToken token); /// /// Материализация записей с историей /// /// /// /// Task>> GetChangeLogData(TimeSpan offset, CancellationToken token); } /// /// Интерфейс для работы с объектами, содержащими историю изменений. С известной временной зоной /// /// /// public interface IChangeLogQueryBuilderWithKnownTimezone: IChangeLogQueryBuilder where TDto : IId { /// /// Материализация записей. Временная зона определяется по запросу из последнего ApplyRequest /// /// /// Task> GetData(CancellationToken token); /// /// Материализация записей с историей. Временная зона определяется по запросу из последнего ApplyRequest /// /// /// Task>> GetChangeLogData(CancellationToken token); }