using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services; /// /// Сервис получения, добавления, изменения, удаления данных /// /// public interface ICrudRepository where TDto : Data.IId { /// /// Код возврата ошибки: Id не найден в БД. /// public const int ErrorIdNotFound = -1; /// /// Получение всех записей /// /// /// emptyList if nothing found Task> GetAllAsync(CancellationToken token); /// /// Получить запись по id /// /// /// /// null if not found Task GetOrDefaultAsync(int id, CancellationToken token); /// /// Получить запись по id /// /// /// null if not found TDto? GetOrDefault(int id); /// /// Добавление новой записи /// /// /// /// Id новой записи Task InsertAsync(TDto newItem, CancellationToken token); /// /// Добавление нескольких записей /// /// /// /// количество добавленных Task InsertRangeAsync(IEnumerable newItems, CancellationToken token); /// /// Отредактировать запись /// /// /// /// если больше 0 - Id записи, если меньше 0 - код ошибки Task UpdateAsync(TDto item, CancellationToken token); /// /// Удалить запись /// /// /// /// количество добавленных, если меньше 0 - код ошибки Task DeleteAsync(int id, CancellationToken token); }