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