Initial Commit ...

This commit is contained in:
2024-01-25 04:49:52 +03:30
commit d26a1c49fd
17 changed files with 1678 additions and 0 deletions
+102
View File
@@ -0,0 +1,102 @@
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);
#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
}
}
+14
View File
@@ -0,0 +1,14 @@
using xStorageService.Models;
namespace xStorageService.Interfaces {
public partial interface IXThumbnailProvider {
void SetTempFolder (string folder);
XImageInfo GetImageInfo (string filePath);
void ResizeImage (
string filePath,
string resizedFilePath,
int size,
int quality
);
}
}