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 DeleteFile(IEnumerable filesName);
///
/// Удаление всех файлов с диска о которых нет информации в базе
///
///
///
int DeleteFilesNotInList(int idWell, IEnumerable idsFiles);
///
/// Вывод списка всех файлов из базы, для которых нет файла на диске
///
///
///
IEnumerable GetListFilesNotDisc(IEnumerable files);
///
/// Получение пути к файлу
///
///
///
///
///
///
string MakeFilePath(int idWell, int idCategory, string fileFullName, int fileId);
///
/// Получить путь для скачивания
///
///
///
///
///
///
string GetUrl(int idWell, int idCategory, int idFile, string dotExtention);
}
}