DD.WellWorkover.Cloud/AsbCloudApp/Repositories/IFileStorageRepository.cs

104 lines
3.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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="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);
}
}