DD.WellWorkover.Cloud/AsbCloudApp/Repositories/IFaqRepository.cs
2024-08-19 10:01:07 +05:00

65 lines
2.2 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using AsbCloudApp.Data;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Threading;
using AsbCloudApp.Requests;
using AsbCloudApp.Services;
namespace AsbCloudApp.Repositories;
/// <summary>
/// репозиторий по работе с faq-вопросами
/// </summary>
public interface IFaqRepository
{
/// <summary>
/// Получить список вопросов
/// </summary>
/// <param name="request"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<FaqDto>> GetFilteredAsync(FaqRequest request, CancellationToken token);
/// <summary>
/// Добавить вопрос
/// </summary>
/// <param name="faqDto"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<int> InsertAsync(FaqDto faqDto, CancellationToken token);
/// <summary>
/// Обновить существующий вопрос
/// </summary>
/// <param name="dto"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<int> UpdateAsync(FaqDto dto, CancellationToken token);
/// <summary>
/// Объединить 2 вопроса в 1
/// </summary>
/// <param name="sourceId1">ключ первого вопроса, подлежащего объединению</param>
/// <param name="sourceId2">ключ второго вопроса, подлежащего объединению</param>
/// <param name="mergeQuestions">Флаг, объединять текст вопросов или нет</param>
/// <param name="token"></param>
/// <returns></returns>
Task<int> MergeAsync(int sourceId1, int sourceId2, bool mergeQuestions, CancellationToken token);
/// <summary>
/// Пометить вопрос по id как удаленный
/// </summary>
/// <param name="id"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<int> MarkAsDeletedAsync(int id, CancellationToken token);
/// <summary>
/// Удалить вопрос по ключу
/// </summary>
/// <param name="id"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<int> DeleteAsync(int id, CancellationToken token);
}