DD.WellWorkover.Cloud/AsbCloudApp/Services/ICrudService.cs
ngfrolov 1e7f5fe654 Doc
2022-06-01 17:52:26 +05:00

71 lines
2.5 KiB
C#

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