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

110 lines
3.8 KiB
C#
Raw Normal View History

using AsbCloudApp.Data;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
2024-08-19 10:01:07 +05:00
namespace AsbCloudApp.Repositories;
/// <summary>
/// Репозиторий хранения фалов
/// </summary>
public interface IFileStorageRepository
{
2024-08-19 10:01:07 +05:00
/// <summary>
2024-08-19 10:01:07 +05:00
/// Получение длинны фала и проверка его наличия, если отсутствует падает исключение
/// </summary>
2024-08-19 10:01:07 +05:00
/// <param name="srcFilePath"></param>
/// <returns></returns>
long GetFileLength(string srcFilePath);
2024-08-19 10:01:07 +05:00
/// <summary>
/// Перемещение файла
/// </summary>
/// <param name="srcFilePath"></param>
/// <param name="filePath"></param>
void MoveFile(string srcFilePath, string filePath);
2024-08-19 10:01:07 +05:00
/// <summary>
/// Копирование файла
/// </summary>
/// <param name="filePathRec"></param>
/// <param name="fileStreamSrc"></param>
/// <param name="token"></param>
/// <returns></returns>
Task SaveFileAsync(string filePathRec, Stream fileStreamSrc, CancellationToken token);
2024-08-19 10:01:07 +05:00
/// <summary>
/// Удаление пачки файлов
/// </summary>
/// <param name="filesName"></param>
void DeleteFiles(IEnumerable<string> filesName);
2024-08-19 10:01:07 +05:00
/// <summary>
/// Удаление одного файла
/// </summary>
/// <param name="fileName"></param>
void DeleteFile(string fileName);
2024-08-19 10:01:07 +05:00
/// <summary>
/// Удаление директории
/// </summary>
/// <param name="path"></param>
/// <param name="isRecursive"></param>
void DeleteDirectory(string path, bool isRecursive);
2024-08-19 10:01:07 +05:00
/// <summary>
/// Удаление всех файлов с диска о которых нет информации в базе
/// </summary>
/// <param name="idWell"></param>
/// <param name="idsFiles"></param>
int DeleteFilesNotInList(int idWell, IEnumerable<int> idsFiles);
2024-08-19 10:01:07 +05:00
/// <summary>
/// Вывод списка всех файлов из базы, для которых нет файла на диске
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
IEnumerable<FileInfoDto> GetListFilesNotDisc(IEnumerable<FileInfoDto> files);
2024-08-19 10:01:07 +05:00
/// <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);
2022-10-11 14:42:04 +05:00
2024-08-19 10:01:07 +05:00
/// <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);
}