diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogDto.cs index 1b72979b7f..0245b1348e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogDto.cs @@ -5,7 +5,7 @@ using Volo.Abp.Domain.Entities; namespace Volo.CmsKit.Admin.Blogs; [Serializable] -public class BlogDto : EntityDto, IHasConcurrencyStamp +public class BlogDto : ExtensibleEntityDto, IHasConcurrencyStamp { public string Name { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs index e01887e39b..e56fa97bca 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs @@ -7,7 +7,7 @@ using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Admin.Blogs; [Serializable] -public class BlogPostDto : EntityDto, IHasCreationTime, IHasModificationTime, IHasConcurrencyStamp +public class BlogPostDto : ExtensibleEntityDto, IHasCreationTime, IHasModificationTime, IHasConcurrencyStamp { public Guid BlogId { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostListDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostListDto.cs index fc8cbc9e0e..22672f686d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostListDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostListDto.cs @@ -6,7 +6,7 @@ using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Admin.Blogs; [Serializable] -public class BlogPostListDto : EntityDto, IHasCreationTime, IHasModificationTime +public class BlogPostListDto : ExtensibleEntityDto, IHasCreationTime, IHasModificationTime { public Guid BlogId { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs index 31005b7a5b..22c9f76cea 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs @@ -1,12 +1,14 @@ using System; using System.ComponentModel.DataAnnotations; +using Volo.Abp.Application.Dtos; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Admin.Blogs; [Serializable] -public class CreateBlogDto +public class CreateBlogDto : ExtensibleObject { [Required] [DynamicMaxLength(typeof(BlogConsts), nameof(BlogConsts.MaxNameLength))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogPostDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogPostDto.cs index 115239f47c..f9e8fd4c09 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogPostDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogPostDto.cs @@ -1,12 +1,13 @@ using System; using System.ComponentModel.DataAnnotations; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Admin.Blogs; [Serializable] -public class CreateBlogPostDto +public class CreateBlogPostDto: ExtensibleObject { [Required] public Guid BlogId { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs index f0f6cda351..b58ea4d5ae 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs @@ -1,13 +1,14 @@ using System; using System.ComponentModel.DataAnnotations; using Volo.Abp.Domain.Entities; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Admin.Blogs; [Serializable] -public class UpdateBlogDto : IHasConcurrencyStamp +public class UpdateBlogDto : ExtensibleObject, IHasConcurrencyStamp { [Required] [DynamicMaxLength(typeof(BlogConsts), nameof(BlogConsts.MaxNameLength))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogPostDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogPostDto.cs index b19e3ec0e0..3c82584b6f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogPostDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogPostDto.cs @@ -1,13 +1,14 @@ using System; using System.ComponentModel.DataAnnotations; using Volo.Abp.Domain.Entities; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Admin.Blogs; [Serializable] -public class UpdateBlogPostDto : IHasConcurrencyStamp +public class UpdateBlogPostDto : ExtensibleObject, IHasConcurrencyStamp { [Required] [DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxTitleLength))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/CmsKitAdminApplicationContractsModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/CmsKitAdminApplicationContractsModule.cs index 89ffdec62a..1e92d382b2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/CmsKitAdminApplicationContractsModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/CmsKitAdminApplicationContractsModule.cs @@ -1,11 +1,84 @@ using Volo.Abp.Modularity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; +using Volo.CmsKit.Admin.Blogs; +using Volo.CmsKit.Admin.Comments; +using Volo.CmsKit.Admin.GlobalResources; +using Volo.CmsKit.Admin.MediaDescriptors; +using Volo.CmsKit.Admin.Menus; +using Volo.CmsKit.Admin.Pages; +using Volo.CmsKit.Admin.Tags; namespace Volo.CmsKit.Admin; [DependsOn( typeof(CmsKitCommonApplicationContractsModule) - )] +)] public class CmsKitAdminApplicationContractsModule : AbpModule { + private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner(); -} + public override void PostConfigureServices(ServiceConfigurationContext context) + { + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.Blog, + getApiTypes: new[] { typeof(BlogDto) }, + createApiTypes: new[] { typeof(CreateBlogDto) }, + updateApiTypes: new[] { typeof(UpdateBlogDto) } + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.BlogPost, + getApiTypes: new[] { typeof(BlogPostDto), typeof(BlogPostListDto) }, + createApiTypes: new[] { typeof(CreateBlogPostDto) }, + updateApiTypes: new[] { typeof(UpdateBlogPostDto) } + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.Comment, + getApiTypes: new[] { typeof(CommentDto), typeof(CommentWithAuthorDto) } + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.GlobalResource, + getApiTypes: new[] { typeof(GlobalResourcesDto) }, + updateApiTypes: new[] { typeof(GlobalResourcesUpdateDto) } + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.MediaDescriptor, + getApiTypes: new[] { typeof(MediaDescriptorDto) } + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.MenuItem, + createApiTypes: new[] { typeof(MenuCreateInput) , typeof(MenuItemCreateInput)}, + updateApiTypes: new[] { typeof(MenuUpdateInput) , typeof(MenuItemUpdateInput)} + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.Page, + getApiTypes: new[] { typeof(PageDto) }, + createApiTypes: new[] { typeof(CreatePageInputDto) }, + updateApiTypes: new[] { typeof(UpdatePageInputDto) } + ); + + ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.Tag, + createApiTypes: new[] { typeof(TagCreateDto) }, + updateApiTypes: new[] { typeof(TagUpdateDto) } + ); + }); + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CmsUserDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CmsUserDto.cs index 1c4f7b23bd..e5e81df81b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CmsUserDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CmsUserDto.cs @@ -1,9 +1,10 @@ using System; +using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Comments; [Serializable] -public class CmsUserDto +public class CmsUserDto : ExtensibleObject { public Guid Id { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs index 6b147d76aa..aa64135270 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs @@ -1,9 +1,10 @@ using System; +using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Comments; [Serializable] -public class CommentDto +public class CommentDto : ExtensibleObject { public Guid Id { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs index d0ed17977d..eeef248267 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs @@ -1,9 +1,10 @@ using System; +using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Comments; [Serializable] -public class CommentWithAuthorDto +public class CommentWithAuthorDto : ExtensibleObject { public Guid Id { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs index 86398a62e4..92622404c0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs @@ -1,9 +1,10 @@ using System; +using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.GlobalResources; [Serializable] -public class GlobalResourcesDto +public class GlobalResourcesDto : ExtensibleObject { public string StyleContent { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs index b703018f39..8e9576b792 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs @@ -1,9 +1,10 @@ using System; +using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.GlobalResources; [Serializable] -public class GlobalResourcesUpdateDto +public class GlobalResourcesUpdateDto : ExtensibleObject { public string Style { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorDto.cs index c34358ef9d..162ab76925 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorDto.cs @@ -4,7 +4,7 @@ using Volo.Abp.Application.Dtos; namespace Volo.CmsKit.Admin.MediaDescriptors; [Serializable] -public class MediaDescriptorDto : EntityDto +public class MediaDescriptorDto : ExtensibleEntityDto { public string Name { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuCreateInput.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuCreateInput.cs index 06323ebb42..b44df6f4e8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuCreateInput.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuCreateInput.cs @@ -3,11 +3,12 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Menus; [Serializable] -public class MenuCreateInput +public class MenuCreateInput : ExtensibleObject { public string Name { get; set; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs index cb2f3129ce..f5ec9c6444 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs @@ -1,10 +1,11 @@ using System; using System.ComponentModel.DataAnnotations; +using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Menus; [Serializable] -public class MenuItemCreateInput +public class MenuItemCreateInput : ExtensibleObject { public Guid? ParentId { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs index 5d9c0e9c02..8767a6192a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs @@ -1,11 +1,12 @@ using System; using System.ComponentModel.DataAnnotations; using Volo.Abp.Domain.Entities; +using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Menus; [Serializable] -public class MenuItemUpdateInput : IHasConcurrencyStamp +public class MenuItemUpdateInput : ExtensibleObject, IHasConcurrencyStamp { [Required] public string DisplayName { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuUpdateInput.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuUpdateInput.cs index defa2558fe..668cad9290 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuUpdateInput.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuUpdateInput.cs @@ -3,11 +3,12 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Menus; [Serializable] -public class MenuUpdateInput +public class MenuUpdateInput : ExtensibleObject { public string Name { get; set; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs index 1ee4550941..a28d87d0c1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs @@ -1,12 +1,13 @@ using System; using System.ComponentModel.DataAnnotations; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Pages; namespace Volo.CmsKit.Admin.Pages; [Serializable] -public class CreatePageInputDto +public class CreatePageInputDto: ExtensibleObject { [Required] [DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxTitleLength))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs index f1b36d4fd1..eeb73ba918 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs @@ -5,7 +5,7 @@ using Volo.Abp.Domain.Entities; namespace Volo.CmsKit.Admin.Pages; [Serializable] -public class PageDto : AuditedEntityDto, IHasConcurrencyStamp +public class PageDto : ExtensibleAuditedEntityDto, IHasConcurrencyStamp { public string Title { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs index 3cf2e53fcb..0e26b29de8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs @@ -1,13 +1,14 @@ using System; using System.ComponentModel.DataAnnotations; using Volo.Abp.Domain.Entities; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Pages; namespace Volo.CmsKit.Admin.Pages; [Serializable] -public class UpdatePageInputDto : IHasConcurrencyStamp +public class UpdatePageInputDto : ExtensibleObject, IHasConcurrencyStamp { [Required] [DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxTitleLength))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagCreateDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagCreateDto.cs index e992f0ac76..b1d45f1894 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagCreateDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagCreateDto.cs @@ -1,12 +1,13 @@ using System; using System.ComponentModel.DataAnnotations; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Tags; namespace Volo.CmsKit.Admin.Tags; [Serializable] -public class TagCreateDto +public class TagCreateDto : ExtensibleObject { [Required] [DynamicMaxLength(typeof(TagConsts), nameof(TagConsts.MaxEntityTypeLength))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagUpdateDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagUpdateDto.cs index e8ab16e7e1..4754cb64ba 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagUpdateDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagUpdateDto.cs @@ -1,13 +1,14 @@ using System; using System.ComponentModel.DataAnnotations; using Volo.Abp.Domain.Entities; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Tags; namespace Volo.CmsKit.Admin.Tags; [Serializable] -public class TagUpdateDto : IHasConcurrencyStamp +public class TagUpdateDto : ExtensibleObject, IHasConcurrencyStamp { [Required] [DynamicMaxLength(typeof(TagConsts), nameof(TagConsts.MaxNameLength))] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogAdminAppService.cs index 5736048076..d5f32c4bfc 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogAdminAppService.cs @@ -6,6 +6,7 @@ using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.Features; using Volo.Abp.GlobalFeatures; +using Volo.Abp.ObjectExtending; using Volo.CmsKit.Blogs; using Volo.CmsKit.Features; using Volo.CmsKit.GlobalFeatures; @@ -56,7 +57,8 @@ public class BlogAdminAppService : CmsKitAdminAppServiceBase, IBlogAdminAppServi public virtual async Task CreateAsync(CreateBlogDto input) { var blog = await BlogManager.CreateAsync(input.Name, input.Slug); - + input.MapExtraPropertiesTo(blog); + await BlogRepository.InsertAsync(blog, autoSave: true); await BlogFeatureManager.SetDefaultsAsync(blog.Id); @@ -70,7 +72,7 @@ public class BlogAdminAppService : CmsKitAdminAppServiceBase, IBlogAdminAppServi var blog = await BlogRepository.GetAsync(id); blog = await BlogManager.UpdateAsync(blog, input.Name, input.Slug); - + input.MapExtraPropertiesTo(blog); blog.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); await BlogRepository.UpdateAsync(blog); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs index 297e70344f..f396e3edd5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs @@ -6,6 +6,7 @@ using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.Features; using Volo.Abp.GlobalFeatures; +using Volo.Abp.ObjectExtending; using Volo.Abp.Users; using Volo.CmsKit.Admin.MediaDescriptors; using Volo.CmsKit.Blogs; @@ -59,7 +60,7 @@ public class BlogPostAdminAppService : CmsKitAppServiceBase, IBlogPostAdminAppSe input.Content, input.CoverImageMediaId ); - + input.MapExtraPropertiesTo(blogPost); await BlogPostRepository.InsertAsync(blogPost); return ObjectMapper.Map(blogPost); @@ -85,7 +86,8 @@ public class BlogPostAdminAppService : CmsKitAppServiceBase, IBlogPostAdminAppSe { await BlogPostManager.SetSlugUrlAsync(blogPost, input.Slug); } - + input.MapExtraPropertiesTo(blogPost); + await BlogPostRepository.UpdateAsync(blogPost); return ObjectMapper.Map(blogPost); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs index 120e704575..56f58f8078 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs @@ -20,29 +20,31 @@ public class CmsKitAdminApplicationAutoMapperProfile : Profile { public CmsKitAdminApplicationAutoMapperProfile() { - CreateMap(); + CreateMap().MapExtraProperties(); - CreateMap(); + CreateMap().MapExtraProperties(); CreateMap() - .Ignore(x => x.Author); + .Ignore(x => x.Author) + .MapExtraProperties(); - CreateMap(); + CreateMap().MapExtraProperties(); CreateMap(); - CreateMap(MemberList.Destination); + CreateMap(MemberList.Destination).MapExtraProperties(); CreateMap() - .Ignore(d => d.BlogName); - CreateMap(MemberList.Source); - CreateMap(MemberList.Source); + .Ignore(d => d.BlogName) + .MapExtraProperties(); + CreateMap(MemberList.Source).MapExtraProperties(); + CreateMap(MemberList.Source).MapExtraProperties(); - CreateMap(); + CreateMap().MapExtraProperties(); CreateMap(MemberList.Destination); - CreateMap(); + CreateMap().MapExtraProperties(); - CreateMap(); + CreateMap().MapExtraProperties(); - CreateMap(); + CreateMap().MapExtraProperties(); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuItemAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuItemAdminAppService.cs index 3ba2a4b5b9..8eac471a22 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuItemAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuItemAdminAppService.cs @@ -6,6 +6,7 @@ using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.Features; using Volo.Abp.GlobalFeatures; +using Volo.Abp.ObjectExtending; using Volo.CmsKit.Features; using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.Menus; @@ -69,7 +70,7 @@ public class MenuItemAdminAppService : CmsKitAdminAppServiceBase, IMenuItemAdmin { MenuManager.SetPageUrl(menuItem, await PageRepository.GetAsync(input.PageId.Value)); } - + input.MapExtraPropertiesTo(menuItem); await MenuItemRepository.InsertAsync(menuItem); return ObjectMapper.Map(menuItem); @@ -96,7 +97,7 @@ public class MenuItemAdminAppService : CmsKitAdminAppServiceBase, IMenuItemAdmin menuItem.ElementId = input.ElementId; menuItem.CssClass = input.CssClass; menuItem.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); - + input.MapExtraPropertiesTo(menuItem); await MenuItemRepository.UpdateAsync(menuItem); return ObjectMapper.Map(menuItem); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs index 16c39dd859..e858bab189 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs @@ -7,6 +7,7 @@ using Volo.Abp.Caching; using Volo.Abp.Data; using Volo.Abp.Features; using Volo.Abp.GlobalFeatures; +using Volo.Abp.ObjectExtending; using Volo.CmsKit.Features; using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.Pages; @@ -62,7 +63,7 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi public virtual async Task CreateAsync(CreatePageInputDto input) { var page = await PageManager.CreateAsync(input.Title, input.Slug, input.Content, input.Script, input.Style); - + input.MapExtraPropertiesTo(page); await PageRepository.InsertAsync(page); return ObjectMapper.Map(page); @@ -84,6 +85,7 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi page.SetScript(input.Script); page.SetStyle(input.Style); page.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); + input.MapExtraPropertiesTo(page); await PageRepository.UpdateAsync(page); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs index 46324937cc..d856fa8511 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Tags/TagAdminAppService.cs @@ -8,6 +8,7 @@ using Volo.Abp.Application.Dtos; using Volo.Abp.Data; using Volo.Abp.Features; using Volo.Abp.GlobalFeatures; +using Volo.Abp.ObjectExtending; using Volo.CmsKit.Features; using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.Permissions; @@ -44,7 +45,7 @@ public class TagAdminAppService : CmsKitAppServiceBase, ITagAdminAppService GuidGenerator.Create(), input.EntityType, input.Name); - + input.MapExtraPropertiesTo(tag); await Repository.InsertAsync(tag); return ObjectMapper.Map(tag); @@ -56,6 +57,7 @@ public class TagAdminAppService : CmsKitAppServiceBase, ITagAdminAppService var tag = await TagManager.UpdateAsync( id, input.Name); + input.MapExtraPropertiesTo(tag); tag.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebAutoMapperProfile.cs new file mode 100644 index 0000000000..b61b1842b5 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebAutoMapperProfile.cs @@ -0,0 +1,56 @@ +using AutoMapper; +using Volo.CmsKit.Admin.Blogs; +using Volo.CmsKit.Admin.Menus; +using Volo.CmsKit.Admin.Pages; +using Volo.CmsKit.Admin.Tags; +using Volo.CmsKit.Menus; +using Volo.CmsKit.Tags; + +namespace Volo.CmsKit.Admin.Web; + +public class CmsKitAdminWebAutoMapperProfile : Profile +{ + public CmsKitAdminWebAutoMapperProfile() + { + CreateBlogPostMappings(); + CreateBlogMappings(); + CreateMenuMappings(); + CreatePageMappings(); + CreateTagMappings(); + } + + protected virtual void CreateBlogPostMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } + + protected virtual void CreateBlogMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } + + protected virtual void CreateMenuMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } + + protected virtual void CreatePageMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } + + protected virtual void CreateTagMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs index 4c886b9185..cd01a3fd88 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs @@ -7,6 +7,9 @@ using Volo.Abp.AutoMapper; using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Localization; using Volo.Abp.Modularity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; using Volo.CmsKit.Admin.MediaDescriptors; @@ -23,6 +26,8 @@ namespace Volo.CmsKit.Admin.Web; )] public class CmsKitAdminWebModule : AbpModule { + private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PreConfigureServices(ServiceConfigurationContext context) { context.Services.PreConfigure(options => @@ -169,4 +174,51 @@ public class CmsKitAdminWebModule : AbpModule options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(CreateMediaInputWithStream)); }); } + + public override void PostConfigureServices(ServiceConfigurationContext context) + { + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.Blog, + createFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs.CreateModalModel.CreateBlogViewModel) }, + editFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs.UpdateModalModel.UpdateBlogViewModel) } + ); + + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.BlogPost, + createFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts.CreateModel.CreateBlogPostViewModel) }, + editFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts.UpdateModel.UpdateBlogPostViewModel) } + ); + + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.MenuItem, + createFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems.CreateModalModel.MenuItemCreateViewModel) }, + editFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems.UpdateModalModel.MenuItemUpdateViewModel) } + ); + + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.Page, + createFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages.CreateModel.CreatePageViewModel) }, + editFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages.UpdateModel.UpdatePageViewModel) } + ); + + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.Tag, + createFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags.CreateModalModel.TagCreateViewModel) }, + editFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags.EditModalModel.TagEditViewModel) } + ); + + }); + } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml index 27a5be8083..ab7cf99abe 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml @@ -2,6 +2,12 @@ @using System.Globalization @using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Mvc.TagHelpers +@using Microsoft.Extensions.Localization +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form +@using Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers @using Volo.Abp.AspNetCore.Mvc.UI.Packages.TuiEditor @using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Pages.Shared.Components.AbpPageToolbar @using Volo.CmsKit.Admin.Web.Pages @@ -11,10 +17,14 @@ @using Volo.CmsKit.Blogs @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Uppy @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Slugify +@using Volo.Abp.Data +@using Volo.Abp.Localization +@using Volo.Abp.ObjectExtending @using Volo.CmsKit.Permissions @inherits CmsKitAdminPageBase @inject IAuthorizationService AuthorizationService +@inject IStringLocalizerFactory StringLocalizerFactory @model CreateModel @{ @@ -54,7 +64,7 @@ - +
@@ -64,8 +74,8 @@ - - + +
- + @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties()) + { + if (!propertyInfo.Name.EndsWith("_Text")) + { + if (propertyInfo.Type.IsEnum || !propertyInfo.Lookup.Url.IsNullOrEmpty()) + { + if (propertyInfo.Type.IsEnum) + { + Model.ViewModel.ExtraProperties.ToEnum(propertyInfo.Name, propertyInfo.Type); + } + + } + else + { + + } + } + } +
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs index a76385491a..83fa3d0285 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Admin.Blogs; using Volo.CmsKit.Blogs; @@ -25,6 +26,7 @@ public class CreateModel : CmsKitAdminPageModel IBlogPostAdminAppService blogPostAdminAppService) { BlogPostAdminAppService = blogPostAdminAppService; + ViewModel = new CreateBlogPostViewModel(); } public async Task OnPostAsync() @@ -49,7 +51,7 @@ public class CreateModel : CmsKitAdminPageModel } [AutoMap(typeof(CreateBlogPostDto), ReverseMap = true)] - public class CreateBlogPostViewModel + public class CreateBlogPostViewModel : ExtensibleObject { [Required] [DynamicFormIgnore] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml index fc7987cc5b..78a274660b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml @@ -1,6 +1,12 @@ @page "{Id}" @using System.Globalization +@using Microsoft.AspNetCore.Mvc.TagHelpers +@using Microsoft.Extensions.Localization +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form +@using Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers @using Volo.Abp.AspNetCore.Mvc.UI.Packages.TuiEditor @using Volo.CmsKit.Blogs @using Volo.CmsKit.Admin.Web.Pages @@ -10,6 +16,10 @@ @using Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags.Components.TagEditor @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Uppy @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Slugify +@using Volo.Abp.Data +@using Volo.Abp.Localization +@using Volo.Abp.ObjectExtending +@inject IStringLocalizerFactory StringLocalizerFactory @inherits CmsKitAdminPageBase @@ -62,14 +72,15 @@
- +
- +