new output for media
This commit is contained in:
@@ -4,12 +4,10 @@ using Microsoft.AspNetCore.StaticFiles;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using zero.Core.Api;
|
||||
using zero.Core.Entities;
|
||||
using zero.Core.Identity;
|
||||
using zero.Core.Options;
|
||||
using zero.Web.Models;
|
||||
|
||||
namespace zero.Web.Controllers
|
||||
@@ -18,51 +16,47 @@ namespace zero.Web.Controllers
|
||||
public class MediaController : BackofficeController
|
||||
{
|
||||
IMediaApi Api;
|
||||
|
||||
IMediaFolderApi MediaFolderApi;
|
||||
|
||||
IMediaUploadApi MediaUploadApi;
|
||||
|
||||
|
||||
public MediaController(IMediaApi api, IMediaFolderApi mediaFolderApi, IMediaUploadApi mediaUploadApi)
|
||||
public MediaController(IMediaApi api, IMediaFolderApi mediaFolderApi)
|
||||
{
|
||||
Api = api;
|
||||
MediaFolderApi = mediaFolderApi;
|
||||
MediaUploadApi = mediaUploadApi;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get media item by id
|
||||
/// </summary>
|
||||
public async Task<IActionResult> GetById([FromQuery] string id)
|
||||
{
|
||||
return Edit(await Api.GetById(id));
|
||||
}
|
||||
|
||||
public async Task<IActionResult> GetById([FromQuery] string id) => Edit(await Api.GetById(id));
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get media item by id
|
||||
/// </summary>
|
||||
public async Task<IActionResult> GetByIds([FromQuery] string[] ids)
|
||||
{
|
||||
return Json(await Api.GetById(ids));
|
||||
}
|
||||
public async Task<IActionResult> GetByIds([FromQuery] string[] ids) => Json(await Api.GetById(ids));
|
||||
|
||||
|
||||
public async Task<IActionResult> GetListByQuery([FromQuery] MediaListItemQuery query) => Json(await Api.GetListByQuery(query));
|
||||
|
||||
|
||||
public async Task<IActionResult> Save([FromBody] IMedia model) => Json(await Api.Save(model));
|
||||
|
||||
|
||||
public async Task<IActionResult> Upload(IFormFile file, string folderId) => Json(await Api.Save(await Api.Upload(file, folderId)));
|
||||
|
||||
|
||||
public async Task<IActionResult> UploadTemporary(IFormFile file, string folderId) => Json(await Api.Upload(file, folderId));
|
||||
|
||||
|
||||
public async Task<IActionResult> Delete([FromQuery] string id) => Json(await Api.Delete(id));
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get all media items + folders
|
||||
/// </summary>
|
||||
public async Task<IActionResult> GetAll([FromQuery] MediaListQuery query)
|
||||
{
|
||||
ListResult<MediaListModel> items = await Mapper.Map<Media, MediaListModel>(await Api.GetByQuery(query));
|
||||
IList<MediaFolder> hierarchy = null;
|
||||
IEnumerable<MediaListModel> folders = new List<MediaListModel>();
|
||||
MediaFolder folder = null;
|
||||
ListResult<MediaListModel> items = await Mapper.Map<IMedia, MediaListModel>(await Api.GetByQuery(query));
|
||||
IList<IMediaFolder> hierarchy = null;
|
||||
IEnumerable<IMediaFolder> folders = new List<IMediaFolder>();
|
||||
IMediaFolder folder = null;
|
||||
|
||||
if (query.Page < 2)
|
||||
{
|
||||
folders = await Mapper.Map<MediaFolder, MediaListModel>(await MediaFolderApi.GetAll(query.FolderId));
|
||||
folders = await MediaFolderApi.GetAll(query.FolderId);
|
||||
}
|
||||
|
||||
if (!String.IsNullOrEmpty(query.FolderId))
|
||||
@@ -71,51 +65,10 @@ namespace zero.Web.Controllers
|
||||
hierarchy = await MediaFolderApi.GetHierarchy(query.FolderId);
|
||||
}
|
||||
|
||||
return Json(new MediaListResultModel(items, folders, folder, hierarchy));
|
||||
return Json(new MediaListResultModel(items, null, folder, hierarchy));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Save a media item
|
||||
/// </summary>
|
||||
public async Task<IActionResult> Save([FromBody] Media model)
|
||||
{
|
||||
return Json(await Api.Save(model));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Upload a file
|
||||
/// </summary>
|
||||
public async Task<IActionResult> Upload(IFormFile file, string folderId)
|
||||
{
|
||||
Media media = await MediaUploadApi.Upload(file, folderId);
|
||||
return Json(await Api.Save(media));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Upload a file
|
||||
/// </summary>
|
||||
public async Task<IActionResult> UploadTemporary(IFormFile file, string folderId)
|
||||
{
|
||||
Media media = await MediaUploadApi.Upload(file, folderId);
|
||||
return Json(media);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Deletes a media item
|
||||
/// </summary>
|
||||
public async Task<IActionResult> Delete([FromQuery] string id)
|
||||
{
|
||||
return await As<Media, MediaEditModel>(await Api.Delete(id));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Streams a media thumbnail by id
|
||||
/// </summary>
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> StreamThumbnail(string id)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user