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.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.Content;
namespace Volo.CmsKit.Admin.MediaDescriptors
{
@ -9,8 +8,6 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
{
Task<MediaDescriptorDto> CreateAsync(CreateMediaInputStream inputStream);
Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto request);
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 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.Mvc;
using Volo.Abp;
using Volo.Abp.Content;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Permissions;
@ -40,14 +39,6 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
return MediaDescriptorAdminAppService.DeleteAsync(id);
}
[HttpGet]
[Route("{id}")]
[AllowAnonymous]
public virtual Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto request)
{
return MediaDescriptorAdminAppService.DownloadAsync(id, request);
}
[HttpPost]
[Authorize(CmsKitAdminPermissions.MediaDescriptors.Create)]
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.CmsKit.Localization;
namespace Volo.CmsKit.Controllers
namespace Volo.CmsKit
{
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
{

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

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

Loading…
Cancel
Save