From dcf87da74bc55fd587bd9a13546cdf726ff86066 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 29 Jun 2018 09:11:21 +0300 Subject: [PATCH] blogging Module Refactoring dto's, viewmodels, mappers --- .../Blogging/Posts/GetPostForEditOutput.cs | 2 +- .../Volo/Blogging/Posts/IPostAppService.cs | 2 + .../BloggingApplicationAutoMapperProfile.cs | 1 + .../Volo/Blogging/Posts/PostAppService.cs | 15 +++++++ .../AbpBloggingWebAutoMapperProfile.cs | 19 +++++++++ .../Volo.Blogging.Web/BloggingWebModule.cs | 7 ++++ .../Pages/Blog/Posts/Edit.cshtml | 2 +- .../Pages/Blog/Posts/Edit.cshtml.cs | 40 ++++++++++++++++--- .../Pages/Blog/Posts/New.cshtml.cs | 13 ++---- .../Volo.Blogging.Web.csproj | 1 + 10 files changed, 84 insertions(+), 18 deletions(-) create mode 100644 modules/blogging/src/Volo.Blogging.Web/AbpBloggingWebAutoMapperProfile.cs diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Posts/GetPostForEditOutput.cs b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Posts/GetPostForEditOutput.cs index 79a8cf025e..6725f17940 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Posts/GetPostForEditOutput.cs +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Posts/GetPostForEditOutput.cs @@ -5,7 +5,7 @@ using Volo.Abp.Application.Dtos; namespace Volo.Blogging.Posts { - public class GetPostForEditOutput : FullAuditedEntityDto + public class GetPostForEditOutput : EntityDto { public Guid BlogId { get; set; } diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Posts/IPostAppService.cs b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Posts/IPostAppService.cs index 3bf60b40b2..1d083e0818 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Posts/IPostAppService.cs +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Posts/IPostAppService.cs @@ -15,6 +15,8 @@ namespace Volo.Blogging.Posts Task GetAsync(Guid id); + Task GetForEditAsync(Guid id); + Task CreateAsync(CreatePostDto input); Task UpdateAsync(Guid id, UpdatePostDto input); diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/BloggingApplicationAutoMapperProfile.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/BloggingApplicationAutoMapperProfile.cs index f866f84f15..0a9ab747db 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/BloggingApplicationAutoMapperProfile.cs +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/BloggingApplicationAutoMapperProfile.cs @@ -12,6 +12,7 @@ namespace Volo.Blogging CreateMap(); CreateMap(); CreateMap(); + CreateMap(); } } } diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs index c08995f4ba..f69c33de69 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs @@ -41,6 +41,21 @@ namespace Volo.Blogging.Posts return ObjectMapper.Map(post); } + public async Task GetForEditAsync(Guid id) + { + var post = await _postRepository.GetAsync(id); + + var dto = new GetPostForEditOutput + { + Id = post.Id, + BlogId = post.BlogId, + Content = post.Content, + Title = post.Title + }; + + return dto; + } + [Authorize(BloggingPermissions.Posts.Update)] public async Task UpdateAsync(Guid id, UpdatePostDto input) { diff --git a/modules/blogging/src/Volo.Blogging.Web/AbpBloggingWebAutoMapperProfile.cs b/modules/blogging/src/Volo.Blogging.Web/AbpBloggingWebAutoMapperProfile.cs new file mode 100644 index 0000000000..944b9f5375 --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Web/AbpBloggingWebAutoMapperProfile.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using AutoMapper; +using Volo.Blogging.Pages.Blog.Posts; +using Volo.Blogging.Posts; + +namespace Volo.Blogging +{ + public class AbpBloggingWebAutoMapperProfile : Profile + { + public AbpBloggingWebAutoMapperProfile() + { + CreateMap(); + CreateMap(); + } + } +} diff --git a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs index 0cc374472e..d8a08ee7ed 100644 --- a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs +++ b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs @@ -3,6 +3,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AutoMapper; using Volo.Abp.Localization; using Volo.Abp.Localization.Resources.AbpValidation; using Volo.Abp.Modularity; @@ -14,6 +15,7 @@ namespace Volo.Blogging { [DependsOn( typeof(BloggingHttpApiModule), + typeof(AbpAutoMapperModule), typeof(AbpAspNetCoreMvcUiBootstrapModule) )] public class BloggingWebModule : AbpModule @@ -42,6 +44,11 @@ namespace Volo.Blogging .AddVirtualJson("/Localization/Resources/Blogging/Web"); }); + services.Configure(options => + { + options.AddProfile(validate: true); + }); + services.Configure(options => { //TODO: Make configurable! diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Edit.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Edit.cshtml index b594483797..69c4f13bd8 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Edit.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/Edit.cshtml @@ -17,7 +17,7 @@