Browse Source

Removed content and image from page app service

pull/6996/head
Ahmet 6 years ago
parent
commit
811880abee
  1. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs
  2. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/IPageAdminAppService.cs
  3. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs
  4. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj
  5. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationModule.cs
  6. 48
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs
  7. 36
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs
  8. 1
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
  9. 6
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs
  10. 10
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageImageContainer.cs
  11. 50
      modules/cms-kit/test/Volo.CmsKit.Application.Tests/Pages/PageAdminAppService_Tests.cs

4
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs

@ -17,9 +17,5 @@ namespace Volo.CmsKit.Admin.Pages
[DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxDescriptionLength))]
public string Description { get; set; }
[Required]
[DynamicMaxLength(typeof(ContentConsts), nameof(ContentConsts.MaxValueLength))]
public string Content { get; set; }
}
}

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/IPageAdminAppService.cs

@ -7,8 +7,5 @@ namespace Volo.CmsKit.Admin.Pages
{
public interface IPageAdminAppService : ICrudAppService<PageDto, PageDto, Guid, GetPagesInputDto, CreatePageInputDto, UpdatePageInputDto>
{
Task SetImageAsync(Guid id, RemoteStreamContent content);
Task<RemoteStreamContent> GetImageAsync(Guid id);
}
}

4
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs

@ -17,9 +17,5 @@ namespace Volo.CmsKit.Admin.Pages
[DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxDescriptionLength))]
public string Description { get; set; }
[Required]
[DynamicMaxLength(typeof(ContentConsts), nameof(ContentConsts.MaxValueLength))]
public string Content { get; set; }
}
}

1
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj

@ -11,7 +11,6 @@
<ItemGroup>
<ProjectReference Include="..\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Common.Application\Volo.CmsKit.Common.Application.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.BlobStoring\Volo.Abp.BlobStoring.csproj" />
</ItemGroup>
</Project>

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationModule.cs

@ -1,6 +1,5 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AutoMapper;
using Volo.Abp.BlobStoring;
using Volo.Abp.Modularity;
namespace Volo.CmsKit.Admin
@ -8,7 +7,6 @@ namespace Volo.CmsKit.Admin
[DependsOn(
typeof(CmsKitAdminApplicationContractsModule),
typeof(AbpAutoMapperModule),
typeof(AbpBlobStoringModule),
typeof(CmsKitCommonApplicationModule)
)]
public class CmsKitAdminApplicationModule : AbpModule

48
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs

@ -1,14 +1,9 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.BlobStoring;
using Volo.Abp.Content;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.Contents;
using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Permissions;
@ -20,18 +15,10 @@ namespace Volo.CmsKit.Admin.Pages
public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppService
{
protected readonly IPageRepository PageRepository;
protected readonly IContentRepository ContentRepository;
protected readonly IBlobContainer<PageImageContainer> BlobContainer;
public PageAdminAppService(
IPageRepository pageRepository,
IContentRepository contentRepository,
IBlobContainer<PageImageContainer> blobContainer)
public PageAdminAppService(IPageRepository pageRepository)
{
PageRepository = pageRepository;
ContentRepository = contentRepository;
BlobContainer = blobContainer;
}
public virtual async Task<PageDto> GetAsync(Guid id)
@ -67,15 +54,6 @@ namespace Volo.CmsKit.Admin.Pages
await PageRepository.InsertAsync(page);
var content = new Content(
GuidGenerator.Create(),
nameof(Page),
page.Id.ToString(),
input.Content,
page.TenantId);
await ContentRepository.InsertAsync(content);
return ObjectMapper.Map<Page, PageDto>(page);
}
@ -94,36 +72,14 @@ namespace Volo.CmsKit.Admin.Pages
page.Description = input.Description;
await PageRepository.UpdateAsync(page);
var content = await ContentRepository.GetAsync(nameof(Page), page.Id.ToString());
content.SetValue(input.Content);
await ContentRepository.UpdateAsync(content);
return ObjectMapper.Map<Page, PageDto>(page);
}
[Authorize(CmsKitAdminPermissions.Pages.Update)]
public virtual async Task SetImageAsync(Guid id, RemoteStreamContent content)
{
var page = await PageRepository.GetAsync(id);
await BlobContainer.SaveAsync(page.Id.ToString(), content.GetStream());
}
public virtual async Task<RemoteStreamContent> GetImageAsync(Guid id)
{
var blobStream = await BlobContainer.GetAsync(id.ToString());
return new RemoteStreamContent(blobStream);
}
[Authorize(CmsKitAdminPermissions.Pages.Delete)]
public virtual async Task DeleteAsync(Guid id)
{
await ContentRepository.DeleteAsync(nameof(Page), id.ToString(), CurrentTenant?.Id, CancellationToken.None);
await PageRepository.DeleteAsync(id, cancellationToken: CancellationToken.None);
await PageRepository.DeleteAsync(id);
}
protected virtual async Task CheckPageUrlAsync(string url)

36
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs

@ -1,11 +1,9 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Content;
using Volo.Abp.GlobalFeatures;
using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Permissions;
@ -61,39 +59,5 @@ namespace Volo.CmsKit.Admin.Pages
{
return PageAdminAppService.DeleteAsync(id);
}
[HttpPost]
[Authorize(CmsKitAdminPermissions.Pages.Update)]
[Route("image/{id}")]
public virtual Task SetImageAsync(Guid id, RemoteStreamContent content)
{
return PageAdminAppService.SetImageAsync(id, content);
}
[HttpPost]
[Authorize(CmsKitAdminPermissions.Pages.Update)]
[Route("upload-image/{id}")]
public virtual async Task<IActionResult> UploadImageAsync(Guid id, IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest();
}
await PageAdminAppService.SetImageAsync(id, new RemoteStreamContent(file.OpenReadStream()));
return StatusCode(201);
}
[HttpGet]
[Route("image/{id}")]
public virtual Task<RemoteStreamContent> GetImageAsync(Guid id)
{
Response.Headers.Add("Content-Disposition", "inline;");
Response.Headers.Add("Accept-Ranges", "bytes");
Response.ContentType = "image/xyz";
return PageAdminAppService.GetImageAsync(id);
}
}
}

1
modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj

@ -10,7 +10,6 @@
<ItemGroup>
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Ddd.Domain\Volo.Abp.Ddd.Domain.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.BlobStoring\Volo.Abp.BlobStoring.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Domain.Shared\Volo.CmsKit.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\modules\users\src\Volo.Abp.Users.Domain\Volo.Abp.Users.Domain.csproj" />
</ItemGroup>

6
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs

@ -1,5 +1,4 @@
using Volo.Abp.BlobStoring;
using Volo.Abp.Domain;
using Volo.Abp.Domain;
using Volo.Abp.Modularity;
using Volo.Abp.Users;
using Volo.CmsKit.Reactions;
@ -9,8 +8,7 @@ namespace Volo.CmsKit
[DependsOn(
typeof(CmsKitDomainSharedModule),
typeof(AbpUsersDomainModule),
typeof(AbpDddDomainModule),
typeof(AbpBlobStoringModule)
typeof(AbpDddDomainModule)
)]
public class CmsKitDomainModule : AbpModule
{

10
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageImageContainer.cs

@ -1,10 +0,0 @@
using Volo.Abp.BlobStoring;
namespace Volo.CmsKit.Pages
{
[BlobContainerName("cms-kit-page-image")]
public class PageImageContainer
{
}
}

50
modules/cms-kit/test/Volo.CmsKit.Application.Tests/Pages/PageAdminAppService_Tests.cs

@ -15,14 +15,12 @@ namespace Volo.CmsKit.Pages
private readonly IPageAdminAppService _pageAdminAppService;
private readonly IPageRepository _pageRepository;
private readonly IContentRepository _contentRepository;
public PageAdminAppService_Tests()
{
_data = GetRequiredService<CmsKitTestData>();
_pageAdminAppService = GetRequiredService<IPageAdminAppService>();
_pageRepository = GetRequiredService<IPageRepository>();
_contentRepository = GetRequiredService<IContentRepository>();
}
[Fact]
@ -66,8 +64,7 @@ namespace Volo.CmsKit.Pages
var dto = new CreatePageInputDto
{
Title = "test",
Url = "test-url",
Content = "test-content"
Url = "test-url"
};
await Should.NotThrowAsync(async () => await _pageAdminAppService.CreateAsync(dto));
@ -83,42 +80,7 @@ namespace Volo.CmsKit.Pages
var dto = new CreatePageInputDto
{
Title = "test",
Url = _data.Page_1_Url,
Content = "test-content"
};
var exception = await Should.ThrowAsync<PageUrlAlreadyExistException>(async () => await _pageAdminAppService.CreateAsync(dto));
exception.Code.ShouldBe(CmsKitErrorCodes.Pages.UrlAlreadyExist);
}
[Fact]
public async Task ShouldCreateWithContentAsync()
{
var dto = new CreatePageInputDto
{
Title = "test",
Url = "test-url",
Content = "my-test-content"
};
await Should.NotThrowAsync(async () => await _pageAdminAppService.CreateAsync(dto));
var page = await _pageRepository.GetByUrlAsync(dto.Url);
var content = await _contentRepository.GetAsync(nameof(Page), page.Id.ToString());
content.Value.ShouldBe(dto.Content);
}
[Fact]
public async Task ShouldNotCreateExistUrlWithContentAsync()
{
var dto = new CreatePageInputDto
{
Title = "test",
Url = _data.Page_1_Url,
Content = "my-test-content"
Url = _data.Page_1_Url
};
var exception = await Should.ThrowAsync<PageUrlAlreadyExistException>(async () => await _pageAdminAppService.CreateAsync(dto));
@ -133,8 +95,7 @@ namespace Volo.CmsKit.Pages
{
Title = _data.Page_1_Title + "++",
Description = "new description",
Url = _data.Page_1_Url+ "test",
Content = _data.Page_1_Content + "+"
Url = _data.Page_1_Url+ "test"
};
await Should.NotThrowAsync(async () => await _pageAdminAppService.UpdateAsync(_data.Page_1_Id, dto));
@ -158,8 +119,7 @@ namespace Volo.CmsKit.Pages
{
Title = _data.Page_1_Title + "++",
Description = "new description",
Url = _data.Page_2_Url,
Content = _data.Page_1_Content + "+"
Url = _data.Page_2_Url
};
await Should.ThrowAsync<Exception>(async () => await _pageAdminAppService.UpdateAsync(_data.Page_1_Id, dto));
@ -171,8 +131,6 @@ namespace Volo.CmsKit.Pages
await _pageAdminAppService.DeleteAsync(_data.Page_1_Id);
await Should.ThrowAsync<Exception>(async () => await _pageRepository.GetAsync(_data.Page_1_Id));
await Should.ThrowAsync<Exception>(async () => await _contentRepository.GetAsync(nameof(Page), _data.Page_1_Id.ToString()));
}
}
}
Loading…
Cancel
Save