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 @@