From 981db0c1beaee87de778ea26abd1665b32e06847 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Wed, 29 May 2024 10:39:28 +0300 Subject: [PATCH] Refactor 3 --- Directory.Packages.props | 2 - .../Volo/CmsKit/Admin/Comments/CommentDto.cs | 5 +- .../Admin/Comments/CommentWithAuthorDto.cs | 5 +- .../Admin/Comments/ICommentAdminAppService.cs | 4 +- ...CmsKitAdminPermissionDefinitionProvider.cs | 2 + .../Permissions/CmsKitAdminPermissions.cs | 1 + .../Volo.CmsKit.Admin.Application.csproj | 2 - .../Admin/Comments/CommentAdminAppService.cs | 94 ++++++++++--------- .../Admin/Comments/CommentAdminController.cs | 24 +++-- .../CmsKitAdminWebModule.cs | 3 - .../CmsKit/Comments/Approve/Index.cshtml.cs | 4 - .../Pages/CmsKit/Comments/Approve/index.js | 13 +-- .../Pages/CmsKit/Comments/Details.cshtml | 2 +- .../Pages/CmsKit/Comments/Index.cshtml | 2 +- .../Pages/CmsKit/Comments/details.js | 4 +- .../Pages/CmsKit/Comments/index.js | 12 +-- .../Comments/CommentSettingPageContributor.cs | 10 +- .../CommentSettingScriptBundleContributor.cs | 2 +- .../Comments/CommentSettingViewComponent.cs | 3 +- .../Shared/Components/Comments/Index.cshtml | 8 +- .../Shared/Components/Comments/index.js | 10 +- .../Volo.CmsKit.Admin.Web.csproj | 11 +-- .../CmsKitCommonWebModule.cs | 7 +- .../Volo.CmsKit.Common.Web.csproj | 2 +- .../Volo.CmsKit.Domain.csproj | 1 + .../Volo/CmsKit/CmsKitDomainModule.cs | 4 +- .../Volo/CmsKit/Comments/Comment.cs | 8 +- .../CmsKit/Comments/ICommentRepository.cs | 58 ++++++------ .../CmsKitSettingDefinitionProvider.cs | 7 +- .../Comments/EfCoreCommentRepository.cs | 11 +-- .../Volo.CmsKit.Public.Application.csproj | 8 -- 31 files changed, 142 insertions(+), 187 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 394366fe64..39c98ea5de 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -167,8 +167,6 @@ - - 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 9dfc34211d..44e0c47ef8 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,4 +1,4 @@ -using System; +using System; using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Comments; @@ -20,6 +20,5 @@ public class CommentDto : ExtensibleObject public DateTime CreationTime { get; set; } - public bool? IsApproved { get; set; } - + public bool? IsApproved { 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 4b47c6d153..71cb884cb2 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,4 +1,4 @@ -using System; +using System; using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Comments; @@ -24,6 +24,5 @@ public class CommentWithAuthorDto : ExtensibleObject public string Url { get; set; } - public bool? IsApproved { get; set; } - + public bool? IsApproved { get; set; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs index f714d1bcad..18c5c1a1ba 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; @@ -19,5 +19,5 @@ public interface ICommentAdminAppService : IApplicationService Task GetSettingsAsync(); - Task GetWaitingCountAsync(); + Task GetWaitingCountAsync(); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs index 51554a1deb..93f9f740df 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs @@ -19,6 +19,8 @@ public class CmsKitAdminPermissionDefinitionProvider : PermissionDefinitionProvi .RequireGlobalFeatures(typeof(CommentsFeature)); contentGroup.AddChild(CmsKitAdminPermissions.Comments.Update, L("Permission:Comments.Update")) .RequireGlobalFeatures(typeof(CommentsFeature)); + contentGroup.AddChild(CmsKitAdminPermissions.Comments.SettingManagement, L("Permission:Comments.SettingManagement")) + .RequireGlobalFeatures(typeof(CommentsFeature)); var tagGroup = cmsGroup.AddPermission(CmsKitAdminPermissions.Tags.Default, L("Permission:TagManagement")) .RequireGlobalFeatures(typeof(TagsFeature)); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs index f06d2ada9b..0cb2ad884e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs @@ -9,6 +9,7 @@ public static class CmsKitAdminPermissions public const string Default = GroupName + ".Comments"; public const string Delete = Default + ".Delete"; public const string Update = Default + ".Update"; + public const string SettingManagement = Default + ".SettingManagement"; } public static class Tags diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj index 1be5ee95ea..ef9bb92ab3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj @@ -11,8 +11,6 @@ - - diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs index 561c9eb625..966d4fa002 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs @@ -22,8 +22,11 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp { protected ICommentRepository CommentRepository { get; } - private readonly ISettingManager SettingManager; - public CommentAdminAppService(ICommentRepository commentRepository, ISettingManager settingManager) + protected ISettingManager SettingManager { get; } + + public CommentAdminAppService( + ICommentRepository commentRepository, + ISettingManager settingManager) { CommentRepository = commentRepository; SettingManager = settingManager; @@ -31,39 +34,39 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp public virtual async Task> GetListAsync(CommentGetListInput input) { - var totalCount = await CommentRepository.GetCountAsync( - input.Text, - input.EntityType, - input.RepliedCommentId, - input.Author, - input.CreationStartDate, - input.CreationEndDate, - input.CommentApproveState - ); - - - var comments = await CommentRepository.GetListAsync( - input.Text, - input.EntityType, - input.RepliedCommentId, - input.Author, - input.CreationStartDate, - input.CreationEndDate, - input.Sorting, - input.MaxResultCount, - input.SkipCount, - input.CommentApproveState - ); - - var dtos = comments.Select(queryResultItem => - { - var dto = ObjectMapper.Map(queryResultItem.Comment); - dto.Author = ObjectMapper.Map(queryResultItem.Author); - - return dto; - }).ToList(); - - return new PagedResultDto(totalCount, dtos); + var totalCount = await CommentRepository.GetCountAsync( + input.Text, + input.EntityType, + input.RepliedCommentId, + input.Author, + input.CreationStartDate, + input.CreationEndDate, + input.CommentApproveState + ); + + + var comments = await CommentRepository.GetListAsync( + input.Text, + input.EntityType, + input.RepliedCommentId, + input.Author, + input.CreationStartDate, + input.CreationEndDate, + input.Sorting, + input.MaxResultCount, + input.SkipCount, + input.CommentApproveState + ); + + var dtos = comments.Select(queryResultItem => + { + var dto = ObjectMapper.Map(queryResultItem.Comment); + dto.Author = ObjectMapper.Map(queryResultItem.Author); + + return dto; + }).ToList(); + + return new PagedResultDto(totalCount, dtos); } public virtual async Task GetAsync(Guid id) @@ -86,30 +89,31 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp [Authorize(CmsKitAdminPermissions.Comments.Update)] public async Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input) { - var comment = await CommentRepository.GetAsync(id); - comment.SetApprovalStatus(input.IsApproved); + var comment = await CommentRepository.GetAsync(id); + comment.SetApprovalStatus(input.IsApproved); - await CommentRepository.UpdateAsync(comment); + await CommentRepository.UpdateAsync(comment); } - [Authorize(CmsKitAdminPermissions.Comments.Update)] + [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)] public async Task SetSettingsAsync(CommentSettingsDto input) { await SettingManager.SetGlobalAsync(AppSettings.CommentRequireApprovement, input.CommentRequireApprovement.ToString()); } + [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)] public async Task GetSettingsAsync() { - var isRequireApprovementEnabled = bool.Parse(await SettingManager.GetOrNullGlobalAsync(AppSettings.CommentRequireApprovement)); - + var isRequireApprovementEnabled = bool.Parse(await SettingManager.GetOrNullGlobalAsync(AppSettings.CommentRequireApprovement)); + return new CommentSettingsDto - { - CommentRequireApprovement = isRequireApprovementEnabled - }; + { + CommentRequireApprovement = isRequireApprovementEnabled + }; } public async Task GetWaitingCountAsync() { - return (int) await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting); + return (int)await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs index 04ba3f505b..8a154bd0b6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs @@ -22,7 +22,6 @@ public class CommentAdminController : CmsKitAdminController, ICommentAdminAppSer { protected ICommentAdminAppService CommentAdminAppService { get; } - public CommentAdminController(ICommentAdminAppService commentAdminAppService) { CommentAdminAppService = commentAdminAppService; @@ -49,17 +48,17 @@ public class CommentAdminController : CmsKitAdminController, ICommentAdminAppSer return CommentAdminAppService.DeleteAsync(id); } - [HttpPut] - [Route("{id}/approval-status")] + [HttpPut] + [Route("{id}/approval-status")] [Authorize(CmsKitAdminPermissions.Comments.Update)] public Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input) { - return CommentAdminAppService.UpdateApprovalStatusAsync(id, input); - } + return CommentAdminAppService.UpdateApprovalStatusAsync(id, input); + } [HttpPost] [Route("settings")] - [Authorize(CmsKitAdminPermissions.Comments.Update)] + [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)] public Task SetSettingsAsync(CommentSettingsDto input) { return CommentAdminAppService.SetSettingsAsync(input); @@ -67,17 +66,16 @@ public class CommentAdminController : CmsKitAdminController, ICommentAdminAppSer [HttpGet] [Route("settings")] - [Authorize(CmsKitAdminPermissions.Comments.Default)] + [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)] public Task GetSettingsAsync() { return CommentAdminAppService.GetSettingsAsync(); } - [HttpGet] - [Route("waiting-count")] - [Authorize(CmsKitAdminPermissions.Comments.Default)] + [HttpGet] + [Route("waiting-count")] public Task GetWaitingCountAsync() - { - return CommentAdminAppService.GetWaitingCountAsync(); - } + { + return CommentAdminAppService.GetWaitingCountAsync(); + } } 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 1032c340b5..0a21521835 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs @@ -123,7 +123,6 @@ public class CmsKitAdminWebModule : AbpModule options.Conventions.AddPageRoute("/CmsKit/Menus/MenuItems/Index", "/Cms/Menus/Items"); options.Conventions.AddPageRoute("/CmsKit/GlobalResources/Index", "/Cms/GlobalResources"); options.Conventions.AddPageRoute("/CmsKit/Comments/Approve/Index", "/Cms/Comments/Approve"); - }); Configure(options => @@ -187,7 +186,6 @@ public class CmsKitAdminWebModule : AbpModule requiredPolicyName: CmsKitAdminPermissions.Menus.Update ); }); - }); Configure(options => @@ -204,7 +202,6 @@ public class CmsKitAdminWebModule : AbpModule { options.Contributors.Add(new CommentSettingPageContributor()); }); - } public override void PostConfigureServices(ServiceConfigurationContext context) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs index b129f16e8b..54693bbe7b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs @@ -1,10 +1,7 @@ using System; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments.Approve; - public class IndexModel : CmsKitAdminPageModel { public string EntityType { get; set; } @@ -16,5 +13,4 @@ public class IndexModel : CmsKitAdminPageModel public DateTime? CreationEndDate { get; set; } public string IsApproved { get; set; } - } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js index 86965227d1..80fc523490 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js @@ -1,11 +1,8 @@ $(function () { - var l = abp.localization.getResource("CmsKit"); var commentsService = volo.cmsKit.admin.comments.commentAdmin; - var detailsModal = new abp.ModalManager(abp.appPath + "CmsKit/Comments/DetailsModal"); - moment()._locale.preparse = (string) => string; moment()._locale.postformat = (string) => string; @@ -17,7 +14,6 @@ return momentDate.isValid() ? momentDate.toISOString() : null; }; - $('.singledatepicker').daterangepicker({ "singleDatePicker": true, "showDropdowns": true, @@ -27,14 +23,12 @@ "drops": "auto" }); - $('.singledatepicker').attr('autocomplete', 'off'); $('.singledatepicker').on('apply.daterangepicker', function (ev, picker) { $(this).val(picker.startDate.format('l')); }); - var filterForm = $('#CmsKitCommentsFilterForm'); var getFilter = function () { @@ -47,7 +41,6 @@ return filterObj; }; - var _dataTable = $('#CommentsTable').DataTable(abp.libs.datatables.normalizeConfiguration({ processing: true, serverSide: true, @@ -78,8 +71,8 @@ var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); abp.notify.success(message); }) - .catch(function (error) { - abp.notify.error(error.message); + .catch(function (error) { // TODO: Is it necessary in ABP Framework? + abp.notify.error(error.message); }); } }, @@ -97,7 +90,7 @@ var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); abp.notify.success(message); }) - .catch(function (error) { + .catch(function (error) { // TODO: Is it necessary in ABP Framework? abp.notify.error(error.message); }); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml index 3fe93fc527..8f544afa65 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml @@ -95,7 +95,7 @@ -
+
// TODO: Use standard id naming convention. For example: IsApprovedSelectInput