using System.IO; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services; /// <summary> /// Сервис для работы c каталогом инструкций /// </summary> public interface IManualCatalogService { /// <summary> /// Сохранение файла /// </summary> /// <param name="idDirectory"></param> /// <param name="idAuthor"></param> /// <param name="name"></param> /// <param name="stream"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<int> SaveFileAsync(int idDirectory, int idAuthor, string name, Stream stream, CancellationToken cancellationToken); /// <summary> /// Добавление директории /// </summary> /// <param name="name"></param> /// <param name="idParent"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<int> AddDirectoryAsync(string name, int? idParent, CancellationToken cancellationToken); /// <summary> /// Обновление директории /// </summary> /// <param name="id"></param> /// <param name="name"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task UpdateDirectoryAsync(int id, string name, CancellationToken cancellationToken); /// <summary> /// Удаление директории /// </summary> /// <param name="id"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<int> DeleteDirectoryAsync(int id, CancellationToken cancellationToken); /// <summary> /// Удаление файла /// </summary> /// <param name="id"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<int> DeleteFileAsync(int id, CancellationToken cancellationToken); /// <summary> /// Получение файла /// </summary> /// <param name="id"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<(Stream stream, string fileName)?> GetFileAsync(int id, CancellationToken cancellationToken); }