Files
xStorageService/Interfaces/IXStorageProvider.cs
T

103 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.FileProviders;
using xCommons.Constants;
using xModels.Dtos;
using xStorageService.Constants;
using xStorageService.Helpers;
using xStorageService.Models;
namespace xStorageService.Interfaces
{
public partial interface IXStorageProvider {
XStorageConfiguration Configuration { get; }
XStorageHelper StorageHelper { get; }
IFileProvider FileProvider { get; }
IXThumbnailProvider ThumbnailProvider { get; }
//
#region Special Folders Path Getter (s) ...
string GetStorageFolderPath ();
string GetTempFolderPath ();
string GetThumbFolderPath ();
string GetUploadsFolderPath ();
string GetWidgetsFolderPath ();
string GetImageFolderPath ();
string GetAudioFolderPath ();
string GetVideoFolderPath ();
string GetDocumentFolderPath ();
string FilePathResolver (string fullPath);
string ConvertToFileUrl(string fullPath);
#endregion
//
#region Prepare Storage Structure ...
void Prepare ();
#endregion
//
#region Validators ...
bool IsFolderExists (string path);
bool IsFileExists (string filePath);
bool IsSupportThumb (string fileName);
bool IsSupportThumb (XFileType type);
void ValidateFileExists (string filePath);
void ValidateFileModel (XFileDto file);
void ValidateFile (IFormFile file);
void ValidateProfileImage (IFormFile file);
#endregion
//
#region Generators ...
string NewFileName ();
string GenerateThumbName (string fileName);
string GetNewFileName (string fileName);
#endregion
//
#region Tools Actions ...
string GetFileExtension (string fileName);
string GetFileNameWithoutExtension (string fileName);
FileExtensions GetFileExtensionType (string fileName);
XFileType GetFileType (string fileName);
XFileType GetFileType (FileExtensions fileExtension);
string GetThumbnailFileFullPath (string thumFileName);
string GetRelatedThumbnailFullPath (string fileName);
string GetFileTypeFolderPath (XFileType type);
string GetFileFolderPath (
string fileName,
bool isTemp = false,
bool isWidget = false
);
string GetFileFullPath (
string fileName,
bool isTemp = false,
bool isWidget = false
);
Task<string> SaveFileAsync (
IFormFile file,
bool isTemp = false,
bool isWidget = false
);
void DeleteFile (
string fileFullPath,
bool forceFileExists = true,
Exception exception = null
);
ICollection<string> DeleteFiles (
ICollection<string> fileFullPaths,
bool forceFileExists = true,
Exception exception = null
);
// Task CreateThumbnail (XFile file);
Task CreateThumbnail (XFileDto file);
Task CreateThumbnail (string fileName);
Task<XFileResult> HandleProfileImageSave (IFormFile file);
Task<XFileResult> HandleFileSave (IFormFile file);
Task<IEnumerable<XFileResult>> HandleFilesSave (IFormFileCollection files);
#endregion
}
}