Browse Source

Added common media app service

pull/7685/head
Ahmet 6 years ago
parent
commit
8306dd7400
  1. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/IMediaDescriptorAdminAppService.cs
  2. 12
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminAppService.cs
  3. 9
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs
  4. 12
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/MediaDescriptors/IMediaDescriptorAppService.cs
  5. 33
      modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/MediaDescriptors/MediaDescriptorAppService.cs
  6. 2
      modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/CmsKitControllerBase.cs
  7. 31
      modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/MediaDescriptors/MediaDescriptorController.cs
  8. 4
      modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/CmsKitPublicControllerBase.cs
  9. 1
      modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Contents/ContentController.cs

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/IMediaDescriptorAdminAppService.cs

@ -1,7 +1,6 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Content;
namespace Volo.CmsKit.Admin.MediaDescriptors namespace Volo.CmsKit.Admin.MediaDescriptors
{ {
@ -9,8 +8,6 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
{ {
Task<MediaDescriptorDto> CreateAsync(CreateMediaInputStream inputStream); Task<MediaDescriptorDto> CreateAsync(CreateMediaInputStream inputStream);
Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto request);
Task DeleteAsync(Guid id); Task DeleteAsync(Guid id);
} }
} }

12
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminAppService.cs

@ -42,17 +42,5 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
await MediaContainer.DeleteAsync(id.ToString()); await MediaContainer.DeleteAsync(id.ToString());
await MediaDescriptorRepository.DeleteAsync(id); await MediaDescriptorRepository.DeleteAsync(id);
} }
[AllowAnonymous]
public virtual async Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto request)
{
var entity = await MediaDescriptorRepository.GetAsync(id);
var stream = await MediaContainer.GetAsync(id.ToString());
return new RemoteStreamContent(stream)
{
ContentType = entity.MimeType
};
}
} }
} }

9
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs

@ -4,7 +4,6 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Content;
using Volo.Abp.GlobalFeatures; using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Permissions; using Volo.CmsKit.Permissions;
@ -40,14 +39,6 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
return MediaDescriptorAdminAppService.DeleteAsync(id); return MediaDescriptorAdminAppService.DeleteAsync(id);
} }
[HttpGet]
[Route("{id}")]
[AllowAnonymous]
public virtual Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto request)
{
return MediaDescriptorAdminAppService.DownloadAsync(id, request);
}
[HttpPost] [HttpPost]
[Authorize(CmsKitAdminPermissions.MediaDescriptors.Create)] [Authorize(CmsKitAdminPermissions.MediaDescriptors.Create)]
public virtual async Task<IActionResult> UploadAsync(IFormFile file) public virtual async Task<IActionResult> UploadAsync(IFormFile file)

12
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/MediaDescriptors/IMediaDescriptorAppService.cs

@ -0,0 +1,12 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.Content;
namespace Volo.CmsKit.MediaDescriptors
{
public interface IMediaDescriptorAppService : IApplicationService
{
Task<RemoteStreamContent> DownloadAsync(Guid id);
}
}

33
modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/MediaDescriptors/MediaDescriptorAppService.cs

@ -0,0 +1,33 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.BlobStoring;
using Volo.Abp.Content;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures;
namespace Volo.CmsKit.MediaDescriptors
{
[RequiresGlobalFeature(typeof(MediaFeature))]
public class MediaDescriptorAppService : CmsKitAppServiceBase, IMediaDescriptorAppService
{
protected readonly IMediaDescriptorRepository MediaDescriptorRepository;
protected readonly IBlobContainer<MediaContainer> MediaContainer;
public MediaDescriptorAppService(IMediaDescriptorRepository mediaDescriptorRepository, IBlobContainer<MediaContainer> mediaContainer)
{
MediaDescriptorRepository = mediaDescriptorRepository;
MediaContainer = mediaContainer;
}
public virtual async Task<RemoteStreamContent> DownloadAsync(Guid id)
{
var entity = await MediaDescriptorRepository.GetAsync(id);
var stream = await MediaContainer.GetAsync(id.ToString());
return new RemoteStreamContent(stream)
{
ContentType = entity.MimeType
};
}
}
}

2
modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Controllers/CmsKitControllerBase.cs → modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/CmsKitControllerBase.cs

@ -1,7 +1,7 @@
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
using Volo.CmsKit.Localization; using Volo.CmsKit.Localization;
namespace Volo.CmsKit.Controllers namespace Volo.CmsKit
{ {
public abstract class CmsKitControllerBase : AbpController public abstract class CmsKitControllerBase : AbpController
{ {

31
modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/MediaDescriptors/MediaDescriptorController.cs

@ -0,0 +1,31 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Content;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures;
namespace Volo.CmsKit.MediaDescriptors
{
[RequiresGlobalFeature(typeof(MediaFeature))]
[RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)]
[Area("cms-kit")]
[Route("api/cms-kit/media")]
public class MediaDescriptorController : CmsKitControllerBase, IMediaDescriptorAppService
{
protected readonly IMediaDescriptorAppService MediaDescriptorAppService;
public MediaDescriptorController(IMediaDescriptorAppService mediaDescriptorAppService)
{
MediaDescriptorAppService = mediaDescriptorAppService;
}
[HttpGet]
[Route("{id}")]
public virtual Task<RemoteStreamContent> DownloadAsync(Guid id)
{
return MediaDescriptorAppService.DownloadAsync(id);
}
}
}

4
modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/CmsKitPublicControllerBase.cs

@ -1,6 +1,4 @@
using Volo.CmsKit.Controllers; namespace Volo.CmsKit.Public
namespace Volo.CmsKit.Public
{ {
public abstract class CmsKitPublicControllerBase : CmsKitControllerBase public abstract class CmsKitPublicControllerBase : CmsKitControllerBase
{ {

1
modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Contents/ContentController.cs

@ -2,7 +2,6 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Volo.Abp; using Volo.Abp;
using Volo.CmsKit.Contents; using Volo.CmsKit.Contents;
using Volo.CmsKit.Controllers;
namespace Volo.CmsKit.Public.Contents namespace Volo.CmsKit.Public.Contents
{ {

Loading…
Cancel
Save