using AsbCloudApp.Data; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Repositories { #nullable enable /// /// Репозиторий хранения фалов /// public interface IFileStorageRepository { /// /// Директория хранения файлов /// string RootPath { get; } /// /// Получение длинны фала и проверка его наличия, если отсутствует падает исключение /// /// /// long GetLengthFile(string srcFilePath); /// /// Перемещение файла /// /// /// void MoveFile(string srcFilePath, string filePath); /// /// Копирование файла /// /// Task CopyFileAsync(string filePath, Stream fileStream, CancellationToken token); /// /// Удаление файла /// /// void DeleteFile(string fileName); /// /// Проверка наличия файла /// /// /// /// bool FileExists(string fullPath, string fileName); /// /// Удаление всех файлов с диска о которых нет информации в базе /// /// /// int DeleteFilesNotExistStorage(int idWell, IEnumerable idsFiles); /// /// Вывод списка всех файлов из базы, для которых нет файла на диске /// /// /// /// IEnumerable GetListFilesNotDisc(int idWell, IEnumerable files); /// /// Получение пути к файлу /// /// /// /// /// /// string MakeFilePath(int idWell, int idCategory, string fileFullName, int fileId); } #nullable disable }