refactoring

pull/7685/head
Ahmet 5 years ago
parent 019dbceb85
commit 82d554d0d5

@ -31,6 +31,7 @@ using Volo.Abp.PermissionManagement;
using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.PermissionManagement.EntityFrameworkCore;
using Volo.Abp.PermissionManagement.Identity; using Volo.Abp.PermissionManagement.Identity;
using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement; using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement.EntityFrameworkCore;
using Volo.Abp.TenantManagement.Web; using Volo.Abp.TenantManagement.Web;
@ -65,7 +66,8 @@ namespace Volo.CmsKit
typeof(AbpTenantManagementEntityFrameworkCoreModule), typeof(AbpTenantManagementEntityFrameworkCoreModule),
typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule),
typeof(AbpAspNetCoreSerilogModule), typeof(AbpAspNetCoreSerilogModule),
typeof(BlobStoringDatabaseEntityFrameworkCoreModule) typeof(BlobStoringDatabaseEntityFrameworkCoreModule),
typeof(AbpSwashbuckleModule)
)] )]
public class CmsKitWebUnifiedModule : AbpModule public class CmsKitWebUnifiedModule : AbpModule
{ {
@ -158,7 +160,7 @@ namespace Volo.CmsKit
app.UseAuthorization(); app.UseAuthorization();
app.UseSwagger(); app.UseSwagger();
app.UseSwaggerUI(options => app.UseAbpSwaggerUI(options =>
{ {
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API"); options.SwaggerEndpoint("/swagger/v1/swagger.json", "Support APP API");
}); });

@ -16,6 +16,7 @@
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.EntityFrameworkCore.SqlServer\Volo.Abp.EntityFrameworkCore.SqlServer.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.EntityFrameworkCore.SqlServer\Volo.Abp.EntityFrameworkCore.SqlServer.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Serilog\Volo.Abp.AspNetCore.Serilog.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Serilog\Volo.Abp.AspNetCore.Serilog.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Swashbuckle\Volo.Abp.Swashbuckle.csproj" />
<ProjectReference Include="..\..\..\..\modules\audit-logging\src\Volo.Abp.AuditLogging.EntityFrameworkCore\Volo.Abp.AuditLogging.EntityFrameworkCore.csproj" /> <ProjectReference Include="..\..\..\..\modules\audit-logging\src\Volo.Abp.AuditLogging.EntityFrameworkCore\Volo.Abp.AuditLogging.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj" /> <ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj" />
<ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Application\Volo.Abp.Account.Application.csproj" /> <ProjectReference Include="..\..\..\..\modules\account\src\Volo.Abp.Account.Application\Volo.Abp.Account.Application.csproj" />

@ -6,17 +6,13 @@ using Volo.CmsKit.MediaDescriptors;
namespace Volo.CmsKit.Admin.MediaDescriptors namespace Volo.CmsKit.Admin.MediaDescriptors
{ {
public class UploadMediaStreamContent : RemoteStreamContent public class CreateMediaInputStream : RemoteStreamContent
{ {
[Required] [Required]
[DynamicStringLength(typeof(MediaDescriptorConsts), nameof(MediaDescriptorConsts.MaxNameLength))] [DynamicStringLength(typeof(MediaDescriptorConsts), nameof(MediaDescriptorConsts.MaxNameLength))]
public string Name { get; set; } public string Name { get; set; }
[Required] public CreateMediaInputStream(Stream stream) : base(stream)
[DynamicStringLength(typeof(MediaDescriptorConsts), nameof(MediaDescriptorConsts.MaxMimeTypeLength))]
public string MimeType { get; set; }
public UploadMediaStreamContent(Stream stream) : base(stream)
{ {
} }
} }

@ -5,15 +5,12 @@ using Volo.Abp.Content;
namespace Volo.CmsKit.Admin.MediaDescriptors namespace Volo.CmsKit.Admin.MediaDescriptors
{ {
public interface IMediaDescriptorAdminAppService public interface IMediaDescriptorAdminAppService : IApplicationService
: ICrudAppService<
MediaDescriptorDto,
MediaDescriptorGetListDto,
Guid,
MediaDescriptorGetListInput,
UploadMediaStreamContent,
UpdateMediaDescriptorDto>
{ {
Task<MediaDescriptorDto> CreateAsync(CreateMediaInputStream inputStream);
Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto request); Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto request);
Task DeleteAsync(Guid id);
} }
} }

@ -1,8 +1,6 @@
using System; using System;
using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Volo.Abp.Application.Dtos;
using Volo.Abp.BlobStoring; using Volo.Abp.BlobStoring;
using Volo.Abp.Content; using Volo.Abp.Content;
using Volo.CmsKit.MediaDescriptors; using Volo.CmsKit.MediaDescriptors;
@ -21,45 +19,18 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
MediaDescriptorRepository = mediaDescriptorRepository; MediaDescriptorRepository = mediaDescriptorRepository;
} }
public virtual async Task<MediaDescriptorDto> GetAsync(Guid id) public virtual async Task<MediaDescriptorDto> CreateAsync(CreateMediaInputStream inputStream)
{
var entity = await MediaDescriptorRepository.GetAsync(id);
return ObjectMapper.Map<MediaDescriptor, MediaDescriptorDto>(entity);
}
public virtual async Task<PagedResultDto<MediaDescriptorGetListDto>> GetListAsync(MediaDescriptorGetListInput input)
{
var totalCount = await MediaDescriptorRepository.GetCountAsync();
var entites = await MediaDescriptorRepository.GetListAsync();
var dtos = ObjectMapper.Map<List<MediaDescriptor>, List<MediaDescriptorGetListDto>>(entites);
return new PagedResultDto<MediaDescriptorGetListDto>(totalCount, dtos);
}
public virtual async Task<MediaDescriptorDto> CreateAsync(UploadMediaStreamContent input)
{ {
var newId = GuidGenerator.Create(); var newId = GuidGenerator.Create();
var newEntity = new MediaDescriptor(newId, CurrentTenant.Id, input.Name, input.MimeType, input.ContentLength ?? 0); var stream = inputStream.GetStream();
var newEntity = new MediaDescriptor(newId, CurrentTenant.Id, inputStream.Name, inputStream.ContentType, stream.Length);
await MediaDescriptorRepository.InsertAsync(newEntity); await MediaDescriptorRepository.InsertAsync(newEntity);
await MediaContainer.SaveAsync(newId.ToString(), input.GetStream()); await MediaContainer.SaveAsync(newId.ToString(), stream);
return ObjectMapper.Map<MediaDescriptor, MediaDescriptorDto>(newEntity); return ObjectMapper.Map<MediaDescriptor, MediaDescriptorDto>(newEntity);
} }
public virtual async Task<MediaDescriptorDto> UpdateAsync(Guid id, UpdateMediaDescriptorDto input)
{
var entity = await MediaDescriptorRepository.GetAsync(id);
entity.SetName(input.Name);
await MediaDescriptorRepository.UpdateAsync(entity);
return ObjectMapper.Map<MediaDescriptor, MediaDescriptorDto>(entity);
}
public virtual async Task DeleteAsync(Guid id) public virtual async Task DeleteAsync(Guid id)
{ {
await MediaContainer.DeleteAsync(id.ToString()); await MediaContainer.DeleteAsync(id.ToString());

@ -1,5 +1,6 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
@ -12,7 +13,7 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
[RequiresGlobalFeature(typeof(MediasFeature))] [RequiresGlobalFeature(typeof(MediasFeature))]
[RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)]
[Area("cms-kit")] [Area("cms-kit")]
[Route("api/cms-kit-admin/medias")] [Route("api/cms-kit-admin/media")]
public class MediaDescriptorAdminController : CmsKitAdminController, IMediaDescriptorAdminAppService public class MediaDescriptorAdminController : CmsKitAdminController, IMediaDescriptorAdminAppService
{ {
protected readonly IMediaDescriptorAdminAppService MediaDescriptorAdminAppService; protected readonly IMediaDescriptorAdminAppService MediaDescriptorAdminAppService;
@ -22,43 +23,44 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
MediaDescriptorAdminAppService = mediaDescriptorAdminAppService; MediaDescriptorAdminAppService = mediaDescriptorAdminAppService;
} }
[HttpGet]
[Route("{id}")]
public virtual Task<MediaDescriptorDto> GetAsync(Guid id)
{
return MediaDescriptorAdminAppService.GetAsync(id);
}
[HttpGet]
public virtual Task<PagedResultDto<MediaDescriptorGetListDto>> GetListAsync(MediaDescriptorGetListInput input)
{
return MediaDescriptorAdminAppService.GetListAsync(input);
}
[HttpPost] [HttpPost]
public virtual Task<MediaDescriptorDto> CreateAsync(UploadMediaStreamContent input) [NonAction]
{ public virtual Task<MediaDescriptorDto> CreateAsync(CreateMediaInputStream inputStream)
return MediaDescriptorAdminAppService.CreateAsync(input);
}
[HttpPut]
[Route("{id}")]
public virtual Task<MediaDescriptorDto> UpdateAsync(Guid id, UpdateMediaDescriptorDto input)
{ {
return MediaDescriptorAdminAppService.UpdateAsync(id, input); return MediaDescriptorAdminAppService.CreateAsync(inputStream);
} }
[HttpDelete] [HttpDelete]
[Route("{id}")]
public virtual Task DeleteAsync(Guid id) public virtual Task DeleteAsync(Guid id)
{ {
return MediaDescriptorAdminAppService.DeleteAsync(id); return MediaDescriptorAdminAppService.DeleteAsync(id);
} }
[HttpGet] [HttpGet]
[Route("download/{id}")] [Route("{id}")]
public virtual Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto request) public virtual Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto request)
{ {
return MediaDescriptorAdminAppService.DownloadAsync(id, request); return MediaDescriptorAdminAppService.DownloadAsync(id, request);
} }
[HttpPost]
public virtual async Task<IActionResult> UploadAsync(IFormFile file)
{
if (file == null)
{
return BadRequest();
}
var inputStream = new CreateMediaInputStream(file.OpenReadStream())
{
ContentType = file.ContentType,
Name = file.FileName
};
var mediaDescriptorDto = await MediaDescriptorAdminAppService.CreateAsync(inputStream);
return StatusCode(201, mediaDescriptorDto);
}
} }
} }
Loading…
Cancel
Save