using AsbCloudApp.Data; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Repositories; /// /// Репозиторий хранения фалов /// public interface IFileStorageRepository { /// /// Получение длинны фала и проверка его наличия, если отсутствует падает исключение /// /// /// long GetFileLength(string srcFilePath); /// /// Перемещение файла /// /// /// void MoveFile(string srcFilePath, string filePath); /// /// Копирование файла /// /// /// /// /// Task SaveFileAsync(string filePathRec, Stream fileStreamSrc, CancellationToken token); /// /// Удаление пачки файлов /// /// void DeleteFiles(IEnumerable filesName); /// /// Удаление одного файла /// /// void DeleteFile(string fileName); /// /// Удаление директории /// /// /// void DeleteDirectory(string path, bool isRecursive); /// /// Удаление всех файлов с диска о которых нет информации в базе /// /// /// int DeleteFilesNotInList(int idWell, IEnumerable idsFiles); /// /// Вывод списка всех файлов из базы, для которых нет файла на диске /// /// /// IEnumerable GetListFilesNotDisc(IEnumerable files); /// /// Создание пути для сохранения файла связанного со скважиной /// /// /// /// /// /// string MakeFilePath(int idWell, int idCategory, string fileFullName, int fileId); /// /// Создание пути для сохранения файла /// /// /// /// /// string MakeFilePath(string path1, string path2, string path3); /// /// Получение пути к файлу связанного со скважиной /// /// /// /// /// /// string GetFilePath(int idWell, int idCategory, int idFile, string dotExtenstion); /// /// Получение пути файла лежащего на диске /// /// /// /// /// /// string GetFilePath(string path1, string path2, int idFile, string dotExtenstion); }