using AsbCloudApp.Data; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// <summary> /// Сервис "Дело скважины" /// </summary> public interface IWellFinalDocumentsService { /// <summary> /// Обновление записей дела скважины /// </summary> /// <param name="idWell"></param> /// <param name="dtos"></param> /// <param name="token"></param> /// <returns></returns> Task<int> UpdateRangeAsync(int idWell, IEnumerable<WellFinalDocumentInputDto>? dtos, CancellationToken token); /// <summary> /// Получение истории файлов /// </summary> /// <param name="idWell"></param> /// <param name="idCategory"></param> /// <param name="token"></param> /// <returns></returns> Task<WellFinalDocumentsHistoryDto> GetFilesHistoryByIdCategoryAsync(int idWell, int idCategory, CancellationToken token); /// <summary> /// Сохранение файла /// </summary> /// <param name="idWell"></param> /// <param name="idCategory"></param> /// <param name="idUser">пользователь, который сохраняет файл</param> /// <param name="fileStream"></param> /// <param name="fileName"></param> /// <param name="token"></param> /// <returns></returns> Task<int> SaveCategoryFileAsync(int idWell, int idCategory, int idUser, Stream fileStream, string fileName, CancellationToken token); /// <summary> /// Повторно оповестить ответственных за загрузку /// </summary> /// <param name="idWell"></param> /// <param name="idUser">запрашивающий пользователь, для проверки его прав и текста сообщения</param> /// <param name="idCategory"></param> /// <param name="token"></param> /// <returns>count of notified publishers</returns> Task<int> ReNotifyPublishersAsync(int idWell, int idUser, int idCategory, CancellationToken token); } }