using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using AsbCloudApp.Data; using AsbCloudApp.Requests; namespace AsbCloudApp.Repositories; /// /// Репозиторий для записей с историей /// public interface IChangeLogRepository where TDto : ChangeLogAbstract where TRequest : ChangeLogBaseRequest { /// /// Добавление записей /// /// /// /// /// Task InsertRange(int idUser, IEnumerable dtos, CancellationToken token); /// /// Редактирование записей /// /// /// /// /// Task UpdateRange(int idUser, IEnumerable dtos, CancellationToken token); /// /// Добавляет Dto у которых id == 0, изменяет dto у которых id != 0 /// /// /// /// /// Task UpdateOrInsertRange(int idUser, IEnumerable dtos, CancellationToken token); /// /// Добавление записей с удалением старых (для импорта) /// /// /// /// /// Task Clear(int idUser, TRequest request, CancellationToken token); /// /// Очистить и добавить новые /// /// /// /// /// /// Task ClearAndInsertRange(int idUser, TRequest request, IEnumerable dtos, CancellationToken token); /// /// Удаление записей /// /// /// /// /// Task DeleteRange(int idUser, IEnumerable ids, CancellationToken token); /// /// Получение дат изменений записей /// /// /// /// Task> GetDatesChange(TRequest request, CancellationToken token); /// /// Получение журнала изменений /// /// /// Фильтр по дате. Если null - вернет все /// /// Task> GetChangeLog(TRequest request, DateOnly? date, CancellationToken token); /// /// Получение записей по параметрам /// /// /// /// Task> Get(TRequest request, CancellationToken token); }