Browse Source

Add CmsKit Module Extension Configuration

pull/16619/head
liangshiwei 3 years ago
parent
commit
a16dce592b
  1. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogDto.cs
  2. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs
  3. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostListDto.cs
  4. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs
  5. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogPostDto.cs
  6. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs
  7. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogPostDto.cs
  8. 77
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/CmsKitAdminApplicationContractsModule.cs
  9. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CmsUserDto.cs
  10. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs
  11. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs
  12. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs
  13. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs
  14. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorDto.cs
  15. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuCreateInput.cs
  16. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs
  17. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs
  18. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuUpdateInput.cs
  19. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs
  20. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs
  21. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs
  22. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagCreateDto.cs
  23. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagUpdateDto.cs
  24. 26
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs
  25. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/CreateModal.cshtml.cs
  26. 3
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/BlogFeatureCacheItem.cs
  27. 2
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/BlogFeatureDto.cs
  28. 44
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/CmsKitCommonApplicationContractsModule.cs
  29. 2
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/BlogPostCommonDto.cs
  30. 2
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/PageDto.cs
  31. 2
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Menus/MenuItemDto.cs
  32. 2
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/TagDto.cs
  33. 2
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Users/CmsUserDto.cs
  34. 13
      modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs
  35. 97
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/Abp/ObjectExtending/CmsKitModuleExtensionConfiguration.cs
  36. 17
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/Abp/ObjectExtending/CmsKitModuleExtensionConfigurationDictionaryExtensions.cs
  37. 34
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/Abp/ObjectExtending/CmsKitModuleExtensionConsts.cs
  38. 69
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs
  39. 3
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs
  40. 25
      modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicApplicationContractsModule.cs
  41. 3
      modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CmsUserDto.cs
  42. 3
      modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs
  43. 3
      modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentWithDetailsDto.cs
  44. 3
      modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreateCommentInput.cs
  45. 3
      modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/UpdateCommentInput.cs
  46. 2
      modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/GlobalResources/GlobalResourceDto.cs
  47. 19
      modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs

2
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; namespace Volo.CmsKit.Admin.Blogs;
[Serializable] [Serializable]
public class BlogDto : EntityDto<Guid>, IHasConcurrencyStamp public class BlogDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp
{ {
public string Name { get; set; } public string Name { get; set; }

2
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; namespace Volo.CmsKit.Admin.Blogs;
[Serializable] [Serializable]
public class BlogPostDto : EntityDto<Guid>, IHasCreationTime, IHasModificationTime, IHasConcurrencyStamp public class BlogPostDto : ExtensibleEntityDto<Guid>, IHasCreationTime, IHasModificationTime, IHasConcurrencyStamp
{ {
public Guid BlogId { get; set; } public Guid BlogId { get; set; }

2
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; namespace Volo.CmsKit.Admin.Blogs;
[Serializable] [Serializable]
public class BlogPostListDto : EntityDto<Guid>, IHasCreationTime, IHasModificationTime public class BlogPostListDto : ExtensibleEntityDto<Guid>, IHasCreationTime, IHasModificationTime
{ {
public Guid BlogId { get; set; } public Guid BlogId { get; set; }

4
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogDto.cs

@ -1,12 +1,14 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Application.Dtos;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
namespace Volo.CmsKit.Admin.Blogs; namespace Volo.CmsKit.Admin.Blogs;
[Serializable] [Serializable]
public class CreateBlogDto public class CreateBlogDto : ExtensibleObject
{ {
[Required] [Required]
[DynamicMaxLength(typeof(BlogConsts), nameof(BlogConsts.MaxNameLength))] [DynamicMaxLength(typeof(BlogConsts), nameof(BlogConsts.MaxNameLength))]

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/CreateBlogPostDto.cs

@ -1,12 +1,13 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
namespace Volo.CmsKit.Admin.Blogs; namespace Volo.CmsKit.Admin.Blogs;
[Serializable] [Serializable]
public class CreateBlogPostDto public class CreateBlogPostDto: ExtensibleObject
{ {
[Required] [Required]
public Guid BlogId { get; set; } public Guid BlogId { get; set; }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogDto.cs

@ -1,13 +1,14 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
namespace Volo.CmsKit.Admin.Blogs; namespace Volo.CmsKit.Admin.Blogs;
[Serializable] [Serializable]
public class UpdateBlogDto : IHasConcurrencyStamp public class UpdateBlogDto : ExtensibleObject, IHasConcurrencyStamp
{ {
[Required] [Required]
[DynamicMaxLength(typeof(BlogConsts), nameof(BlogConsts.MaxNameLength))] [DynamicMaxLength(typeof(BlogConsts), nameof(BlogConsts.MaxNameLength))]

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/UpdateBlogPostDto.cs

@ -1,13 +1,14 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
namespace Volo.CmsKit.Admin.Blogs; namespace Volo.CmsKit.Admin.Blogs;
[Serializable] [Serializable]
public class UpdateBlogPostDto : IHasConcurrencyStamp public class UpdateBlogPostDto : ExtensibleObject, IHasConcurrencyStamp
{ {
[Required] [Required]
[DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxTitleLength))] [DynamicMaxLength(typeof(BlogPostConsts), nameof(BlogPostConsts.MaxTitleLength))]

77
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.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; namespace Volo.CmsKit.Admin;
[DependsOn( [DependsOn(
typeof(CmsKitCommonApplicationContractsModule) typeof(CmsKitCommonApplicationContractsModule)
)] )]
public class CmsKitAdminApplicationContractsModule : AbpModule 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) },
updateApiTypes: new[] { typeof(MenuUpdateInput) }
);
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) }
);
});
}
}

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CmsUserDto.cs

@ -1,9 +1,10 @@
using System; using System;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Comments; namespace Volo.CmsKit.Admin.Comments;
[Serializable] [Serializable]
public class CmsUserDto public class CmsUserDto : ExtensibleObject
{ {
public Guid Id { get; set; } public Guid Id { get; set; }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs

@ -1,9 +1,10 @@
using System; using System;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Comments; namespace Volo.CmsKit.Admin.Comments;
[Serializable] [Serializable]
public class CommentDto public class CommentDto : ExtensibleObject
{ {
public Guid Id { get; set; } public Guid Id { get; set; }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs

@ -1,9 +1,10 @@
using System; using System;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Comments; namespace Volo.CmsKit.Admin.Comments;
[Serializable] [Serializable]
public class CommentWithAuthorDto public class CommentWithAuthorDto : ExtensibleObject
{ {
public Guid Id { get; set; } public Guid Id { get; set; }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesDto.cs

@ -1,9 +1,10 @@
using System; using System;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.GlobalResources; namespace Volo.CmsKit.Admin.GlobalResources;
[Serializable] [Serializable]
public class GlobalResourcesDto public class GlobalResourcesDto : ExtensibleObject
{ {
public string StyleContent { get; set; } public string StyleContent { get; set; }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/GlobalResources/GlobalResourcesUpdateDto.cs

@ -1,9 +1,10 @@
using System; using System;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.GlobalResources; namespace Volo.CmsKit.Admin.GlobalResources;
[Serializable] [Serializable]
public class GlobalResourcesUpdateDto public class GlobalResourcesUpdateDto : ExtensibleObject
{ {
public string Style { get; set; } public string Style { get; set; }

2
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; namespace Volo.CmsKit.Admin.MediaDescriptors;
[Serializable] [Serializable]
public class MediaDescriptorDto : EntityDto<Guid> public class MediaDescriptorDto : ExtensibleEntityDto<Guid>
{ {
public string Name { get; set; } public string Name { get; set; }

3
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.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Menus; namespace Volo.CmsKit.Admin.Menus;
[Serializable] [Serializable]
public class MenuCreateInput public class MenuCreateInput : ExtensibleObject
{ {
public string Name { get; set; } public string Name { get; set; }
} }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs

@ -1,10 +1,11 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Menus; namespace Volo.CmsKit.Admin.Menus;
[Serializable] [Serializable]
public class MenuItemCreateInput public class MenuItemCreateInput : ExtensibleObject
{ {
public Guid? ParentId { get; set; } public Guid? ParentId { get; set; }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs

@ -1,11 +1,12 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Menus; namespace Volo.CmsKit.Admin.Menus;
[Serializable] [Serializable]
public class MenuItemUpdateInput : IHasConcurrencyStamp public class MenuItemUpdateInput : ExtensibleObject, IHasConcurrencyStamp
{ {
[Required] [Required]
public string DisplayName { get; set; } public string DisplayName { get; set; }

3
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.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Menus; namespace Volo.CmsKit.Admin.Menus;
[Serializable] [Serializable]
public class MenuUpdateInput public class MenuUpdateInput : ExtensibleObject
{ {
public string Name { get; set; } public string Name { get; set; }
} }

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

@ -1,12 +1,13 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Pages; using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Admin.Pages; namespace Volo.CmsKit.Admin.Pages;
[Serializable] [Serializable]
public class CreatePageInputDto public class CreatePageInputDto: ExtensibleObject
{ {
[Required] [Required]
[DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxTitleLength))] [DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxTitleLength))]

2
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; namespace Volo.CmsKit.Admin.Pages;
[Serializable] [Serializable]
public class PageDto : AuditedEntityDto<Guid>, IHasConcurrencyStamp public class PageDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp
{ {
public string Title { get; set; } public string Title { get; set; }

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

@ -1,13 +1,14 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Pages; using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Admin.Pages; namespace Volo.CmsKit.Admin.Pages;
[Serializable] [Serializable]
public class UpdatePageInputDto : IHasConcurrencyStamp public class UpdatePageInputDto : ExtensibleObject, IHasConcurrencyStamp
{ {
[Required] [Required]
[DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxTitleLength))] [DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxTitleLength))]

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagCreateDto.cs

@ -1,12 +1,13 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Tags; using Volo.CmsKit.Tags;
namespace Volo.CmsKit.Admin.Tags; namespace Volo.CmsKit.Admin.Tags;
[Serializable] [Serializable]
public class TagCreateDto public class TagCreateDto : ExtensibleObject
{ {
[Required] [Required]
[DynamicMaxLength(typeof(TagConsts), nameof(TagConsts.MaxEntityTypeLength))] [DynamicMaxLength(typeof(TagConsts), nameof(TagConsts.MaxEntityTypeLength))]

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Tags/TagUpdateDto.cs

@ -1,13 +1,14 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Tags; using Volo.CmsKit.Tags;
namespace Volo.CmsKit.Admin.Tags; namespace Volo.CmsKit.Admin.Tags;
[Serializable] [Serializable]
public class TagUpdateDto : IHasConcurrencyStamp public class TagUpdateDto : ExtensibleObject, IHasConcurrencyStamp
{ {
[Required] [Required]
[DynamicMaxLength(typeof(TagConsts), nameof(TagConsts.MaxNameLength))] [DynamicMaxLength(typeof(TagConsts), nameof(TagConsts.MaxNameLength))]

26
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs

@ -20,29 +20,31 @@ public class CmsKitAdminApplicationAutoMapperProfile : Profile
{ {
public CmsKitAdminApplicationAutoMapperProfile() public CmsKitAdminApplicationAutoMapperProfile()
{ {
CreateMap<CmsUser, Comments.CmsUserDto>(); CreateMap<CmsUser, Comments.CmsUserDto>().MapExtraProperties();
CreateMap<Comment, CommentDto>(); CreateMap<Comment, CommentDto>().MapExtraProperties();
CreateMap<Comment, CommentWithAuthorDto>() CreateMap<Comment, CommentWithAuthorDto>()
.Ignore(x => x.Author); .Ignore(x => x.Author)
.MapExtraProperties();
CreateMap<Page, PageDto>(); CreateMap<Page, PageDto>().MapExtraProperties();
CreateMap<Page, PageLookupDto>(); CreateMap<Page, PageLookupDto>();
CreateMap<BlogPost, BlogPostDto>(MemberList.Destination); CreateMap<BlogPost, BlogPostDto>(MemberList.Destination).MapExtraProperties();
CreateMap<BlogPost, BlogPostListDto>() CreateMap<BlogPost, BlogPostListDto>()
.Ignore(d => d.BlogName); .Ignore(d => d.BlogName)
CreateMap<CreateBlogPostDto, BlogPost>(MemberList.Source); .MapExtraProperties();
CreateMap<UpdateBlogPostDto, BlogPost>(MemberList.Source); CreateMap<CreateBlogPostDto, BlogPost>(MemberList.Source).MapExtraProperties();
CreateMap<UpdateBlogPostDto, BlogPost>(MemberList.Source).MapExtraProperties();
CreateMap<Blog, BlogDto>(); CreateMap<Blog, BlogDto>().MapExtraProperties();
CreateMap<TagEntityTypeDefiniton, TagDefinitionDto>(MemberList.Destination); CreateMap<TagEntityTypeDefiniton, TagDefinitionDto>(MemberList.Destination);
CreateMap<Tag, TagDto>(); CreateMap<Tag, TagDto>().MapExtraProperties();
CreateMap<MediaDescriptor, MediaDescriptorDto>(); CreateMap<MediaDescriptor, MediaDescriptorDto>().MapExtraProperties();
CreateMap<MenuItem, MenuItemDto>(); CreateMap<MenuItem, MenuItemDto>().MapExtraProperties();
} }
} }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/CreateModal.cshtml.cs

@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Admin.Blogs; using Volo.CmsKit.Admin.Blogs;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
@ -30,7 +31,7 @@ public class CreateModalModel : CmsKitAdminPageModel
} }
[AutoMap(typeof(CreateBlogDto), ReverseMap = true)] [AutoMap(typeof(CreateBlogDto), ReverseMap = true)]
public class CreateBlogViewModel public class CreateBlogViewModel : ExtensibleObject
{ {
[Required] [Required]
[DynamicMaxLength(typeof(BlogConsts), nameof(BlogConsts.MaxNameLength))] [DynamicMaxLength(typeof(BlogConsts), nameof(BlogConsts.MaxNameLength))]

3
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/BlogFeatureCacheItem.cs

@ -1,9 +1,10 @@
using System; using System;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Blogs; namespace Volo.CmsKit.Blogs;
[Serializable] [Serializable]
public class BlogFeatureCacheItem public class BlogFeatureCacheItem : ExtensibleObject
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public string FeatureName { get; set; } public string FeatureName { get; set; }

2
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/BlogFeatureDto.cs

@ -4,7 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace Volo.CmsKit.Blogs; namespace Volo.CmsKit.Blogs;
[Serializable] [Serializable]
public class BlogFeatureDto : EntityDto<Guid> public class BlogFeatureDto : ExtensibleEntityDto<Guid>
{ {
public string FeatureName { get; set; } public string FeatureName { get; set; }
public bool IsEnabled { get; set; } public bool IsEnabled { get; set; }

44
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/CmsKitCommonApplicationContractsModule.cs

@ -2,6 +2,14 @@
using Volo.Abp.Authorization; using Volo.Abp.Authorization;
using Volo.Abp.Caching; using Volo.Abp.Caching;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.ObjectExtending;
using Volo.Abp.ObjectExtending.Modularity;
using Volo.Abp.Threading;
using Volo.CmsKit.Blogs;
using Volo.CmsKit.Contents;
using Volo.CmsKit.Menus;
using Volo.CmsKit.Tags;
using Volo.CmsKit.Users;
namespace Volo.CmsKit; namespace Volo.CmsKit;
@ -13,5 +21,41 @@ namespace Volo.CmsKit;
)] )]
public class CmsKitCommonApplicationContractsModule : AbpModule public class CmsKitCommonApplicationContractsModule : AbpModule
{ {
private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner();
public override void PostConfigureServices(ServiceConfigurationContext context)
{
OneTimeRunner.Run(() =>
{
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.BlogFeature,
getApiTypes: new[] { typeof(BlogFeatureDto) }
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.BlogPost,
getApiTypes: new[] { typeof(BlogPostCommonDto) }
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.MenuItem,
getApiTypes: new[] { typeof(MenuItemDto) }
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.Tag,
getApiTypes: new[] { typeof(TagDto) }
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.CmsUser,
getApiTypes: new[] { typeof(CmsUserDto) }
);
});
}
} }

2
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/BlogPostCommonDto.cs

@ -5,7 +5,7 @@ using Volo.CmsKit.Users;
namespace Volo.CmsKit.Contents; namespace Volo.CmsKit.Contents;
[Serializable] [Serializable]
public class BlogPostCommonDto : AuditedEntityDto<Guid> public class BlogPostCommonDto : ExtensibleAuditedEntityDto<Guid>
{ {
public Guid BlogId { get; set; } public Guid BlogId { get; set; }

2
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Contents/PageDto.cs

@ -3,7 +3,7 @@ using Volo.Abp.Application.Dtos;
namespace Volo.CmsKit.Contents; namespace Volo.CmsKit.Contents;
public class PageDto : EntityDto<Guid> public class PageDto : ExtensibleEntityDto<Guid>
{ {
public string Title { get; set; } public string Title { get; set; }

2
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Menus/MenuItemDto.cs

@ -5,7 +5,7 @@ using Volo.Abp.Domain.Entities;
namespace Volo.CmsKit.Menus; namespace Volo.CmsKit.Menus;
[Serializable] [Serializable]
public class MenuItemDto : AuditedEntityDto<Guid>, IHasConcurrencyStamp public class MenuItemDto : ExtensibleAuditedEntityDto<Guid>, IHasConcurrencyStamp
{ {
public Guid? ParentId { get; set; } public Guid? ParentId { get; set; }

2
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Tags/TagDto.cs

@ -5,7 +5,7 @@ using Volo.Abp.Domain.Entities;
namespace Volo.CmsKit.Tags; namespace Volo.CmsKit.Tags;
[Serializable] [Serializable]
public class TagDto : EntityDto<Guid>, IHasConcurrencyStamp public class TagDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp
{ {
public string EntityType { get; set; } public string EntityType { get; set; }

2
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Users/CmsUserDto.cs

@ -4,7 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace Volo.CmsKit.Users; namespace Volo.CmsKit.Users;
[Serializable] [Serializable]
public class CmsUserDto : EntityDto<Guid> public class CmsUserDto : ExtensibleEntityDto<Guid>
{ {
public virtual Guid? TenantId { get; protected set; } public virtual Guid? TenantId { get; protected set; }

13
modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs

@ -9,12 +9,15 @@ public class CmsKitCommonApplicationAutoMapperProfile : Profile
{ {
public CmsKitCommonApplicationAutoMapperProfile() public CmsKitCommonApplicationAutoMapperProfile()
{ {
CreateMap<Tag, TagDto>(); CreateMap<Tag, TagDto>().MapExtraProperties();
CreateMap<CmsUser, CmsUserDto>(); CreateMap<CmsUser, CmsUserDto>().MapExtraProperties();
CreateMap<BlogFeature, BlogFeatureCacheItem>(); CreateMap<BlogFeature, BlogFeatureCacheItem>().MapExtraProperties();
CreateMap<BlogFeature, BlogFeatureDto>(); CreateMap<BlogFeature, BlogFeatureDto>().MapExtraProperties();
CreateMap<BlogFeatureCacheItem, BlogFeatureDto>().ReverseMap(); CreateMap<BlogFeatureCacheItem, BlogFeatureDto>()
.MapExtraProperties()
.ReverseMap()
.MapExtraProperties();
} }
} }

97
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/Abp/ObjectExtending/CmsKitModuleExtensionConfiguration.cs

@ -0,0 +1,97 @@
using System;
using Volo.Abp.ObjectExtending.Modularity;
namespace Volo.Abp.ObjectExtending;
public class CmsKitModuleExtensionConfiguration : ModuleExtensionConfiguration
{
public CmsKitModuleExtensionConfiguration ConfigureBlog(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.Blog,
configureAction
);
}
public CmsKitModuleExtensionConfiguration ConfigureBlogPost(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.BlogPost,
configureAction
);
}
public CmsKitModuleExtensionConfiguration ConfigureBlogFeature(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.BlogFeature,
configureAction
);
}
public CmsKitModuleExtensionConfiguration ConfigureMediaDescriptor(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.MediaDescriptor,
configureAction
);
}
public CmsKitModuleExtensionConfiguration ConfigurePage(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.Page,
configureAction
);
}
public CmsKitModuleExtensionConfiguration ConfigureTag(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.Tag,
configureAction
);
}
public CmsKitModuleExtensionConfiguration ConfigureComment(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.Comment,
configureAction
);
}
public CmsKitModuleExtensionConfiguration ConfigureMenuItem(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.MenuItem,
configureAction
);
}
public CmsKitModuleExtensionConfiguration ConfigureCmsUser(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.CmsUser,
configureAction
);
}
public CmsKitModuleExtensionConfiguration ConfigureGlobalResource(
Action<EntityExtensionConfiguration> configureAction)
{
return this.ConfigureEntity(
CmsKitModuleExtensionConsts.EntityNames.GlobalResource,
configureAction
);
}
}

17
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/Abp/ObjectExtending/CmsKitModuleExtensionConfigurationDictionaryExtensions.cs

@ -0,0 +1,17 @@
using System;
using Volo.Abp.ObjectExtending.Modularity;
namespace Volo.Abp.ObjectExtending;
public static class CmsKitModuleExtensionConfigurationDictionaryExtensions
{
public static ModuleExtensionConfigurationDictionary ConfigureIdentity(
this ModuleExtensionConfigurationDictionary modules,
Action<CmsKitModuleExtensionConfiguration> configureAction)
{
return modules.ConfigureModule(
CmsKitModuleExtensionConsts.ModuleName,
configureAction
);
}
}

34
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/Abp/ObjectExtending/CmsKitModuleExtensionConsts.cs

@ -0,0 +1,34 @@
namespace Volo.Abp.ObjectExtending;
public static class CmsKitModuleExtensionConsts
{
public const string ModuleName = "CmsKit";
public static class EntityNames
{
public const string Blog = "Blog";
public const string BlogPost = "BlogPost";
public const string BlogFeature = "BlogFeature";
public const string MediaDescriptor = "MediaDescriptor";
public const string Page = "Page";
public const string Tag = "Tag";
public const string Comment = "Comment";
public const string MenuItem = "MenuItem";
public const string CmsUser = "CmsUser";
public const string GlobalResource = "GlobalResource";
}
public static class ConfigurationNames
{
public const string AllowUserToEdit = "AllowUserToEdit";
}
}

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

@ -3,13 +3,21 @@ using Volo.Abp.Domain;
using Volo.Abp.GlobalFeatures; using Volo.Abp.GlobalFeatures;
using Volo.Abp.Localization; using Volo.Abp.Localization;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.ObjectExtending;
using Volo.Abp.ObjectExtending.Modularity;
using Volo.Abp.Threading;
using Volo.Abp.Users; using Volo.Abp.Users;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
using Volo.CmsKit.Comments; using Volo.CmsKit.Comments;
using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.GlobalFeatures;
using Volo.CmsKit.Localization; using Volo.CmsKit.Localization;
using Volo.CmsKit.MediaDescriptors;
using Volo.CmsKit.Menus;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Ratings; using Volo.CmsKit.Ratings;
using Volo.CmsKit.Reactions; using Volo.CmsKit.Reactions;
using Volo.CmsKit.Tags;
using Volo.CmsKit.Users;
namespace Volo.CmsKit; namespace Volo.CmsKit;
@ -21,6 +29,7 @@ namespace Volo.CmsKit;
)] )]
public class CmsKitDomainModule : AbpModule public class CmsKitDomainModule : AbpModule
{ {
private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner();
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
if (GlobalFeatureManager.Instance.IsEnabled<ReactionsFeature>()) if (GlobalFeatureManager.Instance.IsEnabled<ReactionsFeature>())
@ -81,6 +90,66 @@ public class CmsKitDomainModule : AbpModule
// TODO: Configure TagEntityTypes here... // TODO: Configure TagEntityTypes here...
} }
} }
public override void PostConfigureServices(ServiceConfigurationContext context)
{
OneTimeRunner.Run(() =>
{
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.Blog,
typeof(Blog)
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.BlogPost,
typeof(BlogPost)
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.BlogFeature,
typeof(BlogFeature)
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.MediaDescriptor,
typeof(MediaDescriptor)
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.Page,
typeof(Page)
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.Tag,
typeof(Tag)
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.Comment,
typeof(Comment)
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.MenuItem,
typeof(MenuItem)
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToEntity(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.CmsUser,
typeof(CmsUser)
);
});
}
private static LocalizableString L(string name) private static LocalizableString L(string name)
{ {

3
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/PageCacheItem.cs

@ -1,8 +1,9 @@
using System; using System;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Pages; namespace Volo.CmsKit.Pages;
public class PageCacheItem public class PageCacheItem : ExtensibleObject
{ {
public Guid Id { get; set; } public Guid Id { get; set; }

25
modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicApplicationContractsModule.cs

@ -1,5 +1,10 @@
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.EventBus; using Volo.Abp.EventBus;
using Volo.Abp.ObjectExtending;
using Volo.Abp.ObjectExtending.Modularity;
using Volo.Abp.Threading;
using Volo.CmsKit.Public.Comments;
using Volo.CmsKit.Public.GlobalResources;
namespace Volo.CmsKit.Public; namespace Volo.CmsKit.Public;
@ -9,5 +14,25 @@ namespace Volo.CmsKit.Public;
)] )]
public class CmsKitPublicApplicationContractsModule : AbpModule public class CmsKitPublicApplicationContractsModule : AbpModule
{ {
private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner();
public override void PostConfigureServices(ServiceConfigurationContext context)
{
OneTimeRunner.Run(() =>
{
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.Comment,
getApiTypes: new[] { typeof(CommentDto) , typeof(CommentWithDetailsDto) },
createApiTypes: new []{ typeof(CreateCommentInput) },
updateApiTypes: new []{ typeof(UpdateCommentInput) }
);
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi(
CmsKitModuleExtensionConsts.ModuleName,
CmsKitModuleExtensionConsts.EntityNames.GlobalResource,
getApiTypes: new[] { typeof(GlobalResourceDto) }
);
});
}
} }

3
modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CmsUserDto.cs

@ -1,9 +1,10 @@
using System; using System;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Public.Comments; namespace Volo.CmsKit.Public.Comments;
[Serializable] [Serializable]
public class CmsUserDto public class CmsUserDto : ExtensibleObject
{ {
public Guid Id { get; set; } public Guid Id { get; set; }

3
modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentDto.cs

@ -1,10 +1,11 @@
using System; using System;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Public.Comments; namespace Volo.CmsKit.Public.Comments;
[Serializable] [Serializable]
public class CommentDto : IHasConcurrencyStamp public class CommentDto : ExtensibleObject, IHasConcurrencyStamp
{ {
public Guid Id { get; set; } public Guid Id { get; set; }

3
modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CommentWithDetailsDto.cs

@ -1,11 +1,12 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Public.Comments; namespace Volo.CmsKit.Public.Comments;
[Serializable] [Serializable]
public class CommentWithDetailsDto : IHasConcurrencyStamp public class CommentWithDetailsDto : ExtensibleObject, IHasConcurrencyStamp
{ {
public Guid Id { get; set; } public Guid Id { get; set; }

3
modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreateCommentInput.cs

@ -1,12 +1,13 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Comments; using Volo.CmsKit.Comments;
namespace Volo.CmsKit.Public.Comments; namespace Volo.CmsKit.Public.Comments;
[Serializable] [Serializable]
public class CreateCommentInput public class CreateCommentInput: ExtensibleObject
{ {
[Required] [Required]
[DynamicStringLength(typeof(CommentConsts), nameof(CommentConsts.MaxTextLength))] [DynamicStringLength(typeof(CommentConsts), nameof(CommentConsts.MaxTextLength))]

3
modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/UpdateCommentInput.cs

@ -1,13 +1,14 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Volo.CmsKit.Comments; using Volo.CmsKit.Comments;
namespace Volo.CmsKit.Public.Comments; namespace Volo.CmsKit.Public.Comments;
[Serializable] [Serializable]
public class UpdateCommentInput : IHasConcurrencyStamp public class UpdateCommentInput : ExtensibleObject, IHasConcurrencyStamp
{ {
[Required] [Required]
[DynamicStringLength(typeof(CommentConsts), nameof(CommentConsts.MaxTextLength))] [DynamicStringLength(typeof(CommentConsts), nameof(CommentConsts.MaxTextLength))]

2
modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/GlobalResources/GlobalResourceDto.cs

@ -4,7 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace Volo.CmsKit.Public.GlobalResources; namespace Volo.CmsKit.Public.GlobalResources;
[Serializable] [Serializable]
public class GlobalResourceDto : AuditedEntityDto public class GlobalResourceDto : ExtensibleAuditedEntityDto
{ {
public string Name { get; set; } public string Name { get; set; }

19
modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs

@ -19,27 +19,28 @@ public class PublicApplicationAutoMapperProfile : Profile
{ {
public PublicApplicationAutoMapperProfile() public PublicApplicationAutoMapperProfile()
{ {
CreateMap<CmsUser, Comments.CmsUserDto>(); CreateMap<CmsUser, Comments.CmsUserDto>().MapExtraProperties();
CreateMap<Comment, CommentDto>() CreateMap<Comment, CommentDto>()
.Ignore(x => x.Author); .Ignore(x => x.Author).MapExtraProperties();
CreateMap<Comment, CommentWithDetailsDto>() CreateMap<Comment, CommentWithDetailsDto>()
.Ignore(x => x.Replies) .Ignore(x => x.Replies)
.Ignore(x => x.Author); .Ignore(x => x.Author)
.MapExtraProperties();
CreateMap<Rating, RatingDto>(); CreateMap<Rating, RatingDto>();
CreateMap<Page, PageCacheItem>(); CreateMap<Page, PageCacheItem>().MapExtraProperties();
CreateMap<PageCacheItem, PageDto>(); CreateMap<PageCacheItem, PageDto>().MapExtraProperties();
CreateMap<Page, PageDto>(); CreateMap<Page, PageDto>().MapExtraProperties();
CreateMap<BlogPost, BlogPostCommonDto>(); CreateMap<BlogPost, BlogPostCommonDto>().MapExtraProperties();
CreateMap<MenuItem, MenuItemDto>(); CreateMap<MenuItem, MenuItemDto>().MapExtraProperties();
CreateMap<GlobalResource, GlobalResourceDto>(); CreateMap<GlobalResource, GlobalResourceDto>().MapExtraProperties();
} }
} }

Loading…
Cancel
Save