using AsbCloudApp.Data; using System; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { //TODO: refactor IFileService /// /// Сервис доступа к файлам /// public interface IFileService { /// /// Директория хранения файлов /// string RootPath { get; } /// /// получить url Google drive /// /// /// /// /// /// Task GetSharedUrlAsync(int idFileInfo, int idUser, IFileShareService fileShareService, CancellationToken token); /// /// получить url Google drive /// /// /// /// /// /// Task GetSharedUrlAsync(FileInfoDto dto, int idUser, IFileShareService fileShareService, CancellationToken token = default); /// /// Сохранить файл /// /// /// /// /// /// /// /// Task SaveAsync(int idWell, int? idUser, int idCategory, string fileFullName, Stream fileStream, CancellationToken token = default); /// /// Получить список файлов в контейнере /// /// /// /// /// /// /// /// /// /// /// Task> GetInfosAsync(int idWell, int idCategory, string companyName = default, string fileName = default, DateTime begin = default, DateTime end = default, int skip = 0, int take = 32, CancellationToken token = default); /// /// Инфо о файле /// /// /// /// Task GetInfoAsync(int idFile, CancellationToken token); /// /// Пометить файл как удаленный /// /// /// /// Task MarkAsDeletedAsync(int idFile, CancellationToken token = default); /// /// Получить файлы определенной категории /// /// /// /// /// Task> GetInfosByCategoryAsync(int idWell, int idCategory, CancellationToken token = default); /// /// удалить файл /// /// /// /// Task DeleteAsync(int id, CancellationToken token); /// /// удалить файлы /// /// /// /// Task DeleteAsync(IEnumerable ids, CancellationToken token); /// /// получить путь для скачивания /// /// /// string GetUrl(FileInfoDto fileInfo); /// /// получить путь для скачивания /// /// /// string GetUrl(int idFile); /// /// получить путь для скачивания /// /// /// /// /// /// string GetUrl(int idWell, int idCategory, int idFile, string dotExtention); /// /// добавить метку на файл /// /// /// /// /// Task CreateFileMarkAsync(FileMarkDto fileMarkDto, int idUser, CancellationToken token); /// /// пометить метку файла как удаленную /// /// /// /// Task MarkFileMarkAsDeletedAsync(int idMark, CancellationToken token); /// /// переместить файл /// /// /// /// /// /// /// /// Task MoveAsync(int idWell, int? idUser, int idCategory, string destinationFileName, string srcFileFullName, CancellationToken token = default); /// /// получить инфо о файле по метке /// /// /// /// Task GetByMarkId(int idMark, CancellationToken token); /// /// пометить метки файлов как удаленные /// /// /// /// Task MarkFileMarkAsDeletedAsync(IEnumerable idsMarks, CancellationToken token); } }