using Microsoft.AspNetCore.Http; using System.IO; namespace zero.Media { public static class MediaManagementExtensions { /// /// Uploads a file and persists it /// public static async Task> UploadFile(this IMediaManagement media, IFormFile formFile, string folderId = null, CancellationToken cancellationToken = default) { using Stream stream = formFile.OpenReadStream(); return await media.UploadFile(stream, formFile.FileName, folderId, cancellationToken); } /// /// Uploads a file and persists it /// public static async Task> UploadFile(this IMediaManagement media, byte[] fileBytes, string filename, string folderId = null, CancellationToken cancellationToken = default) { using Stream stream = new MemoryStream(fileBytes); return await media.UploadFile(stream, filename, folderId, cancellationToken); } /// /// Rename and store a media folder /// public static async Task> RenameFolder(this IMediaManagement media, Media folder, string newName) { folder.Name = newName; return await media.UpdateFolder(folder); } /// /// Rename and store a media folder /// public static async Task> RenameFolder(this IMediaManagement media, string folderId, string newName) { Media folder = await media.GetFolder(folderId); if (folder == null) { return EntityResult.Fail("@errors.idnotfound"); } return await RenameFolder(media, folder, newName); } /// /// Move a media folder to a new parent /// public static async Task> MoveFolder(this IMediaManagement media, Media folder, string newParentId) { folder.ParentId = newParentId; return await media.UpdateFolder(folder); } /// /// Move a media folder to a new parent /// public static async Task> MoveFolder(this IMediaManagement media, string folderId, string newParentId) { Media folder = await media.GetFolder(folderId); if (folder == null) { return EntityResult.Fail("@errors.idnotfound"); } return await MoveFolder(media, folder, newParentId); } /// /// Deletes a folder by id /// public static async Task> DeleteFolder(this IMediaManagement media, string folderId) { Media folder = await media.GetFolder(folderId); if (folder == null) { return EntityResult.Fail("@errors.idnotfound"); } return await media.DeleteFolder(folder); } } }