2022-06-01 17:52:26 +05:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2021-08-10 14:35:49 +05:00
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
2021-08-02 14:45:13 +05:00
|
|
|
|
|
|
|
|
|
namespace AsbCloudApp.Services
|
|
|
|
|
{
|
2022-06-01 17:52:26 +05:00
|
|
|
|
#nullable enable
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Сервис получения, добавления, изменения, удаления данных
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="Tdto"></typeparam>
|
2021-08-02 14:45:13 +05:00
|
|
|
|
public interface ICrudService<Tdto>
|
|
|
|
|
where Tdto : Data.IId
|
|
|
|
|
{
|
2022-06-01 17:52:26 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Включение связных данных
|
|
|
|
|
/// </summary>
|
2021-12-22 11:41:18 +05:00
|
|
|
|
ISet<string> Includes { get; }
|
2022-06-01 17:52:26 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Добавление новой записи
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="newItem"></param>
|
|
|
|
|
/// <param name="token"></param>
|
|
|
|
|
/// <returns>Id новой записи</returns>
|
2021-09-10 11:28:57 +05:00
|
|
|
|
Task<int> InsertAsync(Tdto newItem, CancellationToken token = default);
|
2022-06-01 17:52:26 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Добавление нескольких записей
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="newItems"></param>
|
|
|
|
|
/// <param name="token"></param>
|
|
|
|
|
/// <returns>количество добавленных</returns>
|
2021-09-10 11:28:57 +05:00
|
|
|
|
Task<int> InsertRangeAsync(IEnumerable<Tdto> newItems, CancellationToken token = default);
|
2022-06-01 17:52:26 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получение всех записей
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="token"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Obsolete("Небезопасный метод, может выполняться бесконечно долго")]
|
2021-12-03 15:03:33 +05:00
|
|
|
|
Task<IEnumerable<Tdto>> GetAllAsync(CancellationToken token = default);
|
2022-06-01 17:52:26 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Получить запись по id
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
/// <param name="token"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
Task<Tdto?> GetAsync(int id, CancellationToken token = default);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Отредактировать запись
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
/// <param name="item"></param>
|
|
|
|
|
/// <param name="token"></param>
|
|
|
|
|
/// <returns></returns>
|
2021-09-10 11:28:57 +05:00
|
|
|
|
Task<int> UpdateAsync(int id, Tdto item, CancellationToken token = default);
|
2022-06-01 17:52:26 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Удалить запись
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
/// <param name="token"></param>
|
|
|
|
|
/// <returns></returns>
|
2021-12-03 15:03:33 +05:00
|
|
|
|
Task<int> DeleteAsync(int id, CancellationToken token = default);
|
2021-08-02 14:45:13 +05:00
|
|
|
|
}
|
2022-06-01 17:52:26 +05:00
|
|
|
|
#nullable disable
|
2021-08-02 14:45:13 +05:00
|
|
|
|
}
|