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
}