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.Identity;
using Volo.Abp.SettingManagement.EntityFrameworkCore;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.EntityFrameworkCore;
using Volo.Abp.TenantManagement.Web;
@ -65,7 +66,8 @@ namespace Volo.CmsKit
typeof(AbpTenantManagementEntityFrameworkCoreModule),
typeof(AbpAspNetCoreMvcUiBasicThemeModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(BlobStoringDatabaseEntityFrameworkCoreModule)
typeof(BlobStoringDatabaseEntityFrameworkCoreModule),
typeof(AbpSwashbuckleModule)
)]
public class CmsKitWebUnifiedModule : AbpModule
{
@ -158,7 +160,7 @@ namespace Volo.CmsKit
app.UseAuthorization();
app.UseSwagger();
app.UseSwaggerUI(options =>
app.UseAbpSwaggerUI(options =>
{
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.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.Swashbuckle\Volo.Abp.Swashbuckle.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.Application\Volo.Abp.Account.Application.csproj" />

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

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

@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Volo.Abp.Application.Dtos;
using Volo.Abp.BlobStoring;
using Volo.Abp.Content;
using Volo.CmsKit.MediaDescriptors;
@ -21,45 +19,18 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
MediaDescriptorRepository = mediaDescriptorRepository;
}
public virtual async Task<MediaDescriptorDto> GetAsync(Guid id)
{
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)
public virtual async Task<MediaDescriptorDto> CreateAsync(CreateMediaInputStream inputStream)
{
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 MediaContainer.SaveAsync(newId.ToString(), input.GetStream());
await MediaContainer.SaveAsync(newId.ToString(), stream);
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)
{
await MediaContainer.DeleteAsync(id.ToString());

@ -1,5 +1,6 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
@ -12,7 +13,7 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
[RequiresGlobalFeature(typeof(MediasFeature))]
[RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)]
[Area("cms-kit")]
[Route("api/cms-kit-admin/medias")]
[Route("api/cms-kit-admin/media")]
public class MediaDescriptorAdminController : CmsKitAdminController, IMediaDescriptorAdminAppService
{
protected readonly IMediaDescriptorAdminAppService MediaDescriptorAdminAppService;
@ -22,43 +23,44 @@ namespace Volo.CmsKit.Admin.MediaDescriptors
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]
public virtual Task<MediaDescriptorDto> CreateAsync(UploadMediaStreamContent input)
{
return MediaDescriptorAdminAppService.CreateAsync(input);
}
[HttpPut]
[Route("{id}")]
public virtual Task<MediaDescriptorDto> UpdateAsync(Guid id, UpdateMediaDescriptorDto input)
[NonAction]
public virtual Task<MediaDescriptorDto> CreateAsync(CreateMediaInputStream inputStream)
{
return MediaDescriptorAdminAppService.UpdateAsync(id, input);
return MediaDescriptorAdminAppService.CreateAsync(inputStream);
}
[HttpDelete]
[Route("{id}")]
public virtual Task DeleteAsync(Guid id)
{
return MediaDescriptorAdminAppService.DeleteAsync(id);
}
[HttpGet]
[Route("download/{id}")]
[Route("{id}")]
public virtual Task<RemoteStreamContent> DownloadAsync(Guid id, GetMediaRequestDto 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