using AsbCloudApp.Data;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services
{
///
/// Программа бурения
///
public interface IDrillingProgramService
{
///
/// Получить пользователей доступных для назначения в публикаторы или акцепторы
///
///
///
///
Task> GetAvailableUsers(int idWell, CancellationToken token = default);
///
/// Части программы бурения
///
///
///
Task> GetCategoriesAsync(CancellationToken token = default);
///
/// Состояние программы бурения
///
///
///
///
///
Task GetStateAsync(int idWell, int idUser,
CancellationToken token = default);
///
/// Загрузить файл
///
///
///
///
///
///
///
///
Task AddFile(int idWell, int idFileCategory, int idUser, string fileFullName, System.IO.Stream fileStream, CancellationToken token = default);
///
/// Добавить часть программы бурения
///
///
///
///
///
Task AddPartsAsync(int idWell, IEnumerable idFileCategories, CancellationToken token = default);
///
/// Удалить часть программы бурения
///
///
///
///
///
Task RemovePartsAsync(int idWell, IEnumerable idFileCategories, CancellationToken token = default);
///
/// Назначить пользователю роль
///
///
///
///
///
///
///
Task AddUserAsync(int idWell, int idFileCategory, int idUser, int idUserRole, CancellationToken token = default);
///
/// Удалить пользователя
///
///
///
///
///
///
///
Task RemoveUserAsync(int idWell, int idFileCategory, int idUser, int idUserRole, CancellationToken token = default);
///
/// Добавить или изменить отметку для файла (согласование/отклонение)
///
///
///
///
///
Task AddOrReplaceFileMarkAsync(FileMarkDto fileMarkDto, int idUser, CancellationToken token);
///
/// Удалить отметку с файла
///
///
///
///
Task MarkAsDeletedFileMarkAsync(int idFileMark, CancellationToken token);
///
/// Сбросить ошибку формирования
///
///
void ClearError(int idWell);
}
}