using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services
{
#nullable enable
///
/// Сервис получения, добавления, изменения, удаления данных
///
///
public interface ICrudService
where Tdto : Data.IId
{
///
/// Включение связных данных
///
ISet Includes { get; }
///
/// Добавление новой записи
///
///
///
/// Id новой записи
Task InsertAsync(Tdto newItem, CancellationToken token = default);
///
/// Добавление нескольких записей
///
///
///
/// количество добавленных
Task InsertRangeAsync(IEnumerable newItems, CancellationToken token = default);
///
/// Получение всех записей
///
///
///
[Obsolete("Небезопасный метод, может выполняться бесконечно долго")]
Task> GetAllAsync(CancellationToken token = default);
///
/// Получить запись по id
///
///
///
///
Task GetAsync(int id, CancellationToken token = default);
///
/// Отредактировать запись
///
///
///
///
///
Task UpdateAsync(int id, Tdto item, CancellationToken token = default);
///
/// Удалить запись
///
///
///
///
Task DeleteAsync(int id, CancellationToken token = default);
}
#nullable disable
}