diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentCreateDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentCreateDto.cs new file mode 100644 index 0000000000..6729203c8e --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentCreateDto.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; +using Volo.Abp.Validation; +using Volo.CmsKit.Contents; + +namespace Volo.CmsKit.Admin.Contents +{ + public class ContentCreateDto + { + [Required] + [DynamicMaxLength(typeof(ContentConsts), nameof(ContentConsts.MaxEntityTypeLength))] + public string EntityType { get; set; } + + [Required] + [DynamicMaxLength(typeof(ContentConsts), nameof(ContentConsts.MaxEntityIdLength))] + public string EntityId { get; set; } + + [Required] + [DynamicMaxLength(typeof(ContentConsts), nameof(ContentConsts.MaxValueLength))] + public string Value { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentDto.cs index aa7a4650b1..d58ba1c9a3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentDto.cs @@ -5,6 +5,7 @@ namespace Volo.CmsKit.Admin.Contents { public class ContentDto : EntityDto { + public string EntityType { get; set; } public string Value { get; set; } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentGetListInput.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentGetListInput.cs new file mode 100644 index 0000000000..3523b40496 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentGetListInput.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Application.Dtos; + +namespace Volo.CmsKit.Admin.Contents +{ + public class ContentGetListInput : PagedAndSortedResultRequestDto + { + public string Filter { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentUpdateDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentUpdateDto.cs new file mode 100644 index 0000000000..1164b4eecc --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentUpdateDto.cs @@ -0,0 +1,13 @@ +using System.ComponentModel.DataAnnotations; +using Volo.Abp.Validation; +using Volo.CmsKit.Contents; + +namespace Volo.CmsKit.Admin.Contents +{ + public class ContentUpdateDto + { + [Required] + [DynamicMaxLength(typeof(ContentConsts), nameof(ContentConsts.MaxValueLength))] + public string Value { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs new file mode 100644 index 0000000000..02b25aa16d --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs @@ -0,0 +1,16 @@ +using System; +using Volo.Abp.Application.Services; +using Volo.CmsKit.Admin.Contents; + +namespace Volo.CmsKit.Admin.Contents +{ + public interface IContentAdminAppService + : ICrudAppService< + ContentDto, + Guid, + ContentGetListInput, + ContentCreateDto, + ContentUpdateDto> + { + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs new file mode 100644 index 0000000000..9c6496770c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs @@ -0,0 +1,36 @@ +using Microsoft.AspNetCore.Authorization; +using System; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; +using Volo.CmsKit.Contents; +using Volo.CmsKit.Permissions; + +namespace Volo.CmsKit.Admin.Contents +{ + [Authorize(CmsKitAdminPermissions.Contents.Default)] + public class ContentAdminAppService : + CrudAppService< + Content, + ContentDto, + Guid, + ContentGetListInput, + ContentCreateDto, + ContentUpdateDto + >, IContentAdminAppService + { + public ContentAdminAppService( + IRepository repository, + IContentRepository contentRepository) : base(repository) + { + ContentRepository = contentRepository; + + GetListPolicyName = CmsKitAdminPermissions.Contents.Default; + GetPolicyName = CmsKitAdminPermissions.Contents.Default; + CreatePolicyName = CmsKitAdminPermissions.Contents.Create; + UpdatePolicyName = CmsKitAdminPermissions.Contents.Update; + DeletePolicyName = CmsKitAdminPermissions.Contents.Delete; + } + + protected IContentRepository ContentRepository { get; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/ContentConsts.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/ContentConsts.cs index 758a29e81f..d6d69a6a39 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/ContentConsts.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Contents/ContentConsts.cs @@ -10,6 +10,6 @@ namespace Volo.CmsKit.Contents public static int MaxEntityIdLength { get; set; } = CmsEntityConsts.MaxEntityIdLength; // TODO: consider - public static int MaxValueLength = int.MaxValue; + public static int MaxValueLength { get; set; } = int.MaxValue; } } \ No newline at end of file