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