Browse Source

Refactor 3

pull/19919/head
Berkan Sasmaz 2 years ago
parent
commit
981db0c1be
  1. 2
      Directory.Packages.props
  2. 5
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs
  3. 5
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs
  4. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs
  5. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs
  6. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs
  7. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj
  8. 94
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs
  9. 24
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs
  10. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs
  11. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs
  12. 13
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js
  13. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml
  14. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml
  15. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js
  16. 12
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js
  17. 10
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingPageContributor.cs
  18. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingScriptBundleContributor.cs
  19. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingViewComponent.cs
  20. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/Index.cshtml
  21. 10
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/index.js
  22. 11
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj
  23. 7
      modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs
  24. 2
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj
  25. 1
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
  26. 4
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs
  27. 8
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/Comment.cs
  28. 58
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs
  29. 7
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs
  30. 11
      modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs
  31. 8
      modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj

2
Directory.Packages.props

@ -167,8 +167,6 @@
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.5.1" /> <PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.5.1" />
<PackageVersion Include="TimeZoneConverter" Version="6.1.0" /> <PackageVersion Include="TimeZoneConverter" Version="6.1.0" />
<PackageVersion Include="Unidecode.NET" Version="2.1.0" /> <PackageVersion Include="Unidecode.NET" Version="2.1.0" />
<PackageVersion Include="Volo.Abp.SettingManagement.Domain" Version="8.1.3" />
<PackageVersion Include="Volo.Abp.SettingManagement.Web" Version="8.1.3" />
<PackageVersion Include="xunit" Version="2.6.1" /> <PackageVersion Include="xunit" Version="2.6.1" />
<PackageVersion Include="xunit.extensibility.execution" Version="2.6.1" /> <PackageVersion Include="xunit.extensibility.execution" Version="2.6.1" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3" /> <PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3" />

5
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; using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Comments; namespace Volo.CmsKit.Admin.Comments;
@ -20,6 +20,5 @@ public class CommentDto : ExtensibleObject
public DateTime CreationTime { get; set; } public DateTime CreationTime { get; set; }
public bool? IsApproved { get; set; } public bool? IsApproved { get; set; }
} }

5
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; using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Comments; namespace Volo.CmsKit.Admin.Comments;
@ -24,6 +24,5 @@ public class CommentWithAuthorDto : ExtensibleObject
public string Url { get; set; } public string Url { get; set; }
public bool? IsApproved { get; set; } public bool? IsApproved { get; set; }
} }

4
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 System.Threading.Tasks;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
@ -19,5 +19,5 @@ public interface ICommentAdminAppService : IApplicationService
Task<CommentSettingsDto> GetSettingsAsync(); Task<CommentSettingsDto> GetSettingsAsync();
Task<int> GetWaitingCountAsync(); Task<int> GetWaitingCountAsync();
} }

2
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)); .RequireGlobalFeatures(typeof(CommentsFeature));
contentGroup.AddChild(CmsKitAdminPermissions.Comments.Update, L("Permission:Comments.Update")) contentGroup.AddChild(CmsKitAdminPermissions.Comments.Update, L("Permission:Comments.Update"))
.RequireGlobalFeatures(typeof(CommentsFeature)); .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")) var tagGroup = cmsGroup.AddPermission(CmsKitAdminPermissions.Tags.Default, L("Permission:TagManagement"))
.RequireGlobalFeatures(typeof(TagsFeature)); .RequireGlobalFeatures(typeof(TagsFeature));

1
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 Default = GroupName + ".Comments";
public const string Delete = Default + ".Delete"; public const string Delete = Default + ".Delete";
public const string Update = Default + ".Update"; public const string Update = Default + ".Update";
public const string SettingManagement = Default + ".SettingManagement";
} }
public static class Tags public static class Tags

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj

@ -11,8 +11,6 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj" /> <ProjectReference Include="..\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Common.Application\Volo.CmsKit.Common.Application.csproj" /> <ProjectReference Include="..\Volo.CmsKit.Common.Application\Volo.CmsKit.Common.Application.csproj" />
<ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

94
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; } protected ICommentRepository CommentRepository { get; }
private readonly ISettingManager SettingManager; protected ISettingManager SettingManager { get; }
public CommentAdminAppService(ICommentRepository commentRepository, ISettingManager settingManager)
public CommentAdminAppService(
ICommentRepository commentRepository,
ISettingManager settingManager)
{ {
CommentRepository = commentRepository; CommentRepository = commentRepository;
SettingManager = settingManager; SettingManager = settingManager;
@ -31,39 +34,39 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp
public virtual async Task<PagedResultDto<CommentWithAuthorDto>> GetListAsync(CommentGetListInput input) public virtual async Task<PagedResultDto<CommentWithAuthorDto>> GetListAsync(CommentGetListInput input)
{ {
var totalCount = await CommentRepository.GetCountAsync( var totalCount = await CommentRepository.GetCountAsync(
input.Text, input.Text,
input.EntityType, input.EntityType,
input.RepliedCommentId, input.RepliedCommentId,
input.Author, input.Author,
input.CreationStartDate, input.CreationStartDate,
input.CreationEndDate, input.CreationEndDate,
input.CommentApproveState input.CommentApproveState
); );
var comments = await CommentRepository.GetListAsync( var comments = await CommentRepository.GetListAsync(
input.Text, input.Text,
input.EntityType, input.EntityType,
input.RepliedCommentId, input.RepliedCommentId,
input.Author, input.Author,
input.CreationStartDate, input.CreationStartDate,
input.CreationEndDate, input.CreationEndDate,
input.Sorting, input.Sorting,
input.MaxResultCount, input.MaxResultCount,
input.SkipCount, input.SkipCount,
input.CommentApproveState input.CommentApproveState
); );
var dtos = comments.Select(queryResultItem => var dtos = comments.Select(queryResultItem =>
{ {
var dto = ObjectMapper.Map<Comment, CommentWithAuthorDto>(queryResultItem.Comment); var dto = ObjectMapper.Map<Comment, CommentWithAuthorDto>(queryResultItem.Comment);
dto.Author = ObjectMapper.Map<CmsUser, CmsUserDto>(queryResultItem.Author); dto.Author = ObjectMapper.Map<CmsUser, CmsUserDto>(queryResultItem.Author);
return dto; return dto;
}).ToList(); }).ToList();
return new PagedResultDto<CommentWithAuthorDto>(totalCount, dtos); return new PagedResultDto<CommentWithAuthorDto>(totalCount, dtos);
} }
public virtual async Task<CommentWithAuthorDto> GetAsync(Guid id) public virtual async Task<CommentWithAuthorDto> GetAsync(Guid id)
@ -86,30 +89,31 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp
[Authorize(CmsKitAdminPermissions.Comments.Update)] [Authorize(CmsKitAdminPermissions.Comments.Update)]
public async Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input) public async Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input)
{ {
var comment = await CommentRepository.GetAsync(id); var comment = await CommentRepository.GetAsync(id);
comment.SetApprovalStatus(input.IsApproved); 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) public async Task SetSettingsAsync(CommentSettingsDto input)
{ {
await SettingManager.SetGlobalAsync(AppSettings.CommentRequireApprovement, input.CommentRequireApprovement.ToString()); await SettingManager.SetGlobalAsync(AppSettings.CommentRequireApprovement, input.CommentRequireApprovement.ToString());
} }
[Authorize(CmsKitAdminPermissions.Comments.SettingManagement)]
public async Task<CommentSettingsDto> GetSettingsAsync() public async Task<CommentSettingsDto> GetSettingsAsync()
{ {
var isRequireApprovementEnabled = bool.Parse(await SettingManager.GetOrNullGlobalAsync(AppSettings.CommentRequireApprovement)); var isRequireApprovementEnabled = bool.Parse(await SettingManager.GetOrNullGlobalAsync(AppSettings.CommentRequireApprovement));
return new CommentSettingsDto return new CommentSettingsDto
{ {
CommentRequireApprovement = isRequireApprovementEnabled CommentRequireApprovement = isRequireApprovementEnabled
}; };
} }
public async Task<int> GetWaitingCountAsync() public async Task<int> GetWaitingCountAsync()
{ {
return (int) await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting); return (int)await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting);
} }
} }

24
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; } protected ICommentAdminAppService CommentAdminAppService { get; }
public CommentAdminController(ICommentAdminAppService commentAdminAppService) public CommentAdminController(ICommentAdminAppService commentAdminAppService)
{ {
CommentAdminAppService = commentAdminAppService; CommentAdminAppService = commentAdminAppService;
@ -49,17 +48,17 @@ public class CommentAdminController : CmsKitAdminController, ICommentAdminAppSer
return CommentAdminAppService.DeleteAsync(id); return CommentAdminAppService.DeleteAsync(id);
} }
[HttpPut] [HttpPut]
[Route("{id}/approval-status")] [Route("{id}/approval-status")]
[Authorize(CmsKitAdminPermissions.Comments.Update)] [Authorize(CmsKitAdminPermissions.Comments.Update)]
public Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input) public Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input)
{ {
return CommentAdminAppService.UpdateApprovalStatusAsync(id, input); return CommentAdminAppService.UpdateApprovalStatusAsync(id, input);
} }
[HttpPost] [HttpPost]
[Route("settings")] [Route("settings")]
[Authorize(CmsKitAdminPermissions.Comments.Update)] [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)]
public Task SetSettingsAsync(CommentSettingsDto input) public Task SetSettingsAsync(CommentSettingsDto input)
{ {
return CommentAdminAppService.SetSettingsAsync(input); return CommentAdminAppService.SetSettingsAsync(input);
@ -67,17 +66,16 @@ public class CommentAdminController : CmsKitAdminController, ICommentAdminAppSer
[HttpGet] [HttpGet]
[Route("settings")] [Route("settings")]
[Authorize(CmsKitAdminPermissions.Comments.Default)] [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)]
public Task<CommentSettingsDto> GetSettingsAsync() public Task<CommentSettingsDto> GetSettingsAsync()
{ {
return CommentAdminAppService.GetSettingsAsync(); return CommentAdminAppService.GetSettingsAsync();
} }
[HttpGet] [HttpGet]
[Route("waiting-count")] [Route("waiting-count")]
[Authorize(CmsKitAdminPermissions.Comments.Default)]
public Task<int> GetWaitingCountAsync() public Task<int> GetWaitingCountAsync()
{ {
return CommentAdminAppService.GetWaitingCountAsync(); return CommentAdminAppService.GetWaitingCountAsync();
} }
} }

3
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/Menus/MenuItems/Index", "/Cms/Menus/Items");
options.Conventions.AddPageRoute("/CmsKit/GlobalResources/Index", "/Cms/GlobalResources"); options.Conventions.AddPageRoute("/CmsKit/GlobalResources/Index", "/Cms/GlobalResources");
options.Conventions.AddPageRoute("/CmsKit/Comments/Approve/Index", "/Cms/Comments/Approve"); options.Conventions.AddPageRoute("/CmsKit/Comments/Approve/Index", "/Cms/Comments/Approve");
}); });
Configure<AbpPageToolbarOptions>(options => Configure<AbpPageToolbarOptions>(options =>
@ -187,7 +186,6 @@ public class CmsKitAdminWebModule : AbpModule
requiredPolicyName: CmsKitAdminPermissions.Menus.Update requiredPolicyName: CmsKitAdminPermissions.Menus.Update
); );
}); });
}); });
Configure<DynamicJavaScriptProxyOptions>(options => Configure<DynamicJavaScriptProxyOptions>(options =>
@ -204,7 +202,6 @@ public class CmsKitAdminWebModule : AbpModule
{ {
options.Contributors.Add(new CommentSettingPageContributor()); options.Contributors.Add(new CommentSettingPageContributor());
}); });
} }
public override void PostConfigureServices(ServiceConfigurationContext context) public override void PostConfigureServices(ServiceConfigurationContext context)

4
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs

@ -1,10 +1,7 @@
using System; using System;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments.Approve; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments.Approve;
public class IndexModel : CmsKitAdminPageModel public class IndexModel : CmsKitAdminPageModel
{ {
public string EntityType { get; set; } public string EntityType { get; set; }
@ -16,5 +13,4 @@ public class IndexModel : CmsKitAdminPageModel
public DateTime? CreationEndDate { get; set; } public DateTime? CreationEndDate { get; set; }
public string IsApproved { get; set; } public string IsApproved { get; set; }
} }

13
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js

@ -1,11 +1,8 @@
$(function () { $(function () {
var l = abp.localization.getResource("CmsKit"); var l = abp.localization.getResource("CmsKit");
var commentsService = volo.cmsKit.admin.comments.commentAdmin; var commentsService = volo.cmsKit.admin.comments.commentAdmin;
var detailsModal = new abp.ModalManager(abp.appPath + "CmsKit/Comments/DetailsModal");
moment()._locale.preparse = (string) => string; moment()._locale.preparse = (string) => string;
moment()._locale.postformat = (string) => string; moment()._locale.postformat = (string) => string;
@ -17,7 +14,6 @@
return momentDate.isValid() ? momentDate.toISOString() : null; return momentDate.isValid() ? momentDate.toISOString() : null;
}; };
$('.singledatepicker').daterangepicker({ $('.singledatepicker').daterangepicker({
"singleDatePicker": true, "singleDatePicker": true,
"showDropdowns": true, "showDropdowns": true,
@ -27,14 +23,12 @@
"drops": "auto" "drops": "auto"
}); });
$('.singledatepicker').attr('autocomplete', 'off'); $('.singledatepicker').attr('autocomplete', 'off');
$('.singledatepicker').on('apply.daterangepicker', function (ev, picker) { $('.singledatepicker').on('apply.daterangepicker', function (ev, picker) {
$(this).val(picker.startDate.format('l')); $(this).val(picker.startDate.format('l'));
}); });
var filterForm = $('#CmsKitCommentsFilterForm'); var filterForm = $('#CmsKitCommentsFilterForm');
var getFilter = function () { var getFilter = function () {
@ -47,7 +41,6 @@
return filterObj; return filterObj;
}; };
var _dataTable = $('#CommentsTable').DataTable(abp.libs.datatables.normalizeConfiguration({ var _dataTable = $('#CommentsTable').DataTable(abp.libs.datatables.normalizeConfiguration({
processing: true, processing: true,
serverSide: true, serverSide: true,
@ -78,8 +71,8 @@
var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully');
abp.notify.success(message); abp.notify.success(message);
}) })
.catch(function (error) { .catch(function (error) { // TODO: Is it necessary in ABP Framework?
abp.notify.error(error.message); abp.notify.error(error.message);
}); });
} }
}, },
@ -97,7 +90,7 @@
var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully');
abp.notify.success(message); abp.notify.success(message);
}) })
.catch(function (error) { .catch(function (error) { // TODO: Is it necessary in ABP Framework?
abp.notify.error(error.message); abp.notify.error(error.message);
}); });
} }

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml

@ -95,7 +95,7 @@
<abp-input asp-for="@Model.Author" label="@L["Username"].Value" type="text"/> <abp-input asp-for="@Model.Author" label="@L["Username"].Value" type="text"/>
</abp-column> </abp-column>
<abp-column size-lg="_2" size-md="_12"> <abp-column size-lg="_2" size-md="_12">
<div class="mb-3" id="isApprovedColumn"> <div class="mb-3" id="isApprovedColumn"> // TODO: Use standard id naming convention. For example: IsApprovedSelectInput
<label class="mb-1" for="isApprovedSelect">@L["CommentFilter:ApproveState"].Value</label> <label class="mb-1" for="isApprovedSelect">@L["CommentFilter:ApproveState"].Value</label>
<select id="isApprovedSelect" asp-for="@Model.CommentApproveState" class="form-control"> <select id="isApprovedSelect" asp-for="@Model.CommentApproveState" class="form-control">
<option value="@CommentApproveState.All">@L["CommentFilter:All"].Value</option> <option value="@CommentApproveState.All">@L["CommentFilter:All"].Value</option>

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml

@ -32,7 +32,7 @@
</abp-script-bundle> </abp-script-bundle>
} }
<abp-alert id="commentsAlert" alert-type="Warning" style="display: none;"> <abp-alert id="commentsAlert" alert-type="Warning" style="display: none;"> // TODO: Use standard id naming convention. For example: IsApprovedSelectInput
</abp-alert> </abp-alert>
<abp-card class="mb-4"> <abp-card class="mb-4">

4
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js

@ -93,7 +93,7 @@ $(function (){
var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully');
abp.notify.success(message); abp.notify.success(message);
}) })
.catch(function (error) { .catch(function (error) { // TODO: Is it necessary in ABP Framework?
abp.notify.error(error.message); abp.notify.error(error.message);
}); });
} }
@ -114,7 +114,7 @@ $(function (){
var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully');
abp.notify.success(message); abp.notify.success(message);
}) })
.catch(function (error) { .catch(function (error) { // TODO: Is it necessary in ABP Framework?
abp.notify.error(error.message); abp.notify.error(error.message);
}); });
} }

12
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js

@ -3,8 +3,6 @@ $(function () {
var commentsService = volo.cmsKit.admin.comments.commentAdmin; var commentsService = volo.cmsKit.admin.comments.commentAdmin;
var detailsModal = new abp.ModalManager(abp.appPath + "CmsKit/Comments/DetailsModal");
moment()._locale.preparse = (string) => string; moment()._locale.preparse = (string) => string;
moment()._locale.postformat = (string) => string; moment()._locale.postformat = (string) => string;
@ -16,7 +14,6 @@ $(function () {
return momentDate.isValid() ? momentDate.toISOString() : null; return momentDate.isValid() ? momentDate.toISOString() : null;
}; };
$('.singledatepicker').daterangepicker({ $('.singledatepicker').daterangepicker({
"singleDatePicker": true, "singleDatePicker": true,
"showDropdowns": true, "showDropdowns": true,
@ -26,15 +23,12 @@ $(function () {
"drops": "auto" "drops": "auto"
}); });
$('.singledatepicker').attr('autocomplete', 'off'); $('.singledatepicker').attr('autocomplete', 'off');
$('.singledatepicker').on('apply.daterangepicker', function (ev, picker) { $('.singledatepicker').on('apply.daterangepicker', function (ev, picker) {
$(this).val(picker.startDate.format('l')); $(this).val(picker.startDate.format('l'));
}); });
var filterForm = $('#CmsKitCommentsFilterForm'); var filterForm = $('#CmsKitCommentsFilterForm');
var getFilter = function () { var getFilter = function () {
@ -100,7 +94,7 @@ $(function () {
var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully');
abp.notify.success(message); abp.notify.success(message);
}) })
.catch(function (error) { .catch(function (error) { // TODO: Is it necessary in ABP Framework?
abp.notify.error(error.message); abp.notify.error(error.message);
}); });
} }
@ -122,7 +116,7 @@ $(function () {
var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully');
abp.notify.success(message); abp.notify.success(message);
}) })
.catch(function (error) { .catch(function (error) { // TODO: Is it necessary in ABP Framework?
abp.notify.error(error.message); abp.notify.error(error.message);
}); });
} }
@ -237,7 +231,7 @@ $(function () {
_dataTable.ajax.reloadEx(); _dataTable.ajax.reloadEx();
}); });
function checkWaitingComments() { function checkWaitingComments() { // TODO: Rename this function. CheckWaitingComments is not a good name for this function.
commentsService.getWaitingCount().then(function (count) { commentsService.getWaitingCount().then(function (count) {
if (count > 0) { if (count > 0) {
var alertMessage = l("CommentAlertMessage", count); var alertMessage = l("CommentAlertMessage", count);

10
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingPageContributor.cs

@ -1,14 +1,15 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization; using Microsoft.Extensions.Localization;
using Volo.Abp.SettingManagement.Web.Pages.SettingManagement; using Volo.Abp.SettingManagement.Web.Pages.SettingManagement;
using Volo.CmsKit.Localization; using Volo.CmsKit.Localization;
using Volo.CmsKit.Permissions;
namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Shared.Components.Comments; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Shared.Components.Comments;
public class CommentSettingPageContributor : ISettingPageContributor public class CommentSettingPageContributor : ISettingPageContributor
{ {
public Task ConfigureAsync(SettingPageCreationContext context) public Task ConfigureAsync(SettingPageCreationContext context)
{ {
var l = context.ServiceProvider.GetRequiredService<IStringLocalizer<CmsKitResource>>(); var l = context.ServiceProvider.GetRequiredService<IStringLocalizer<CmsKitResource>>();
@ -24,9 +25,10 @@ public class CommentSettingPageContributor : ISettingPageContributor
return Task.CompletedTask; return Task.CompletedTask;
} }
public Task<bool> CheckPermissionsAsync(SettingPageCreationContext context) public async Task<bool> CheckPermissionsAsync(SettingPageCreationContext context)
{ {
// Add permission var authorizationService = context.ServiceProvider.GetRequiredService<IAuthorizationService>();
return Task.FromResult(true);
return await authorizationService.IsGrantedAsync(CmsKitAdminPermissions.Comments.SettingManagement);
} }
} }

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingScriptBundleContributor.cs

@ -7,7 +7,7 @@ public class CommentSettingScriptBundleContributor : BundleContributor
{ {
public override void ConfigureBundle(BundleConfigurationContext context) public override void ConfigureBundle(BundleConfigurationContext context)
{ {
context.Files.AddIfNotContains("/client-proxies/cms-kit-admin-proxy.js"); context.Files.AddIfNotContains("/client-proxies/cms-kit-admin-proxy.js"); // TODO: is it necessary?
context.Files.AddIfNotContains("/Pages/CmsKit/Shared/Components/Comments/index.js"); context.Files.AddIfNotContains("/Pages/CmsKit/Shared/Components/Comments/index.js");
} }
} }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingViewComponent.cs

@ -3,11 +3,12 @@ using Volo.Abp.AspNetCore.Mvc.UI.Widgets;
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Shared.Components.Comments; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Shared.Components.Comments;
[ViewComponent(Name = "CmsCommentSetting")]
[Widget( [Widget(
ScriptTypes = new[] { typeof(CommentSettingScriptBundleContributor) }, ScriptTypes = new[] { typeof(CommentSettingScriptBundleContributor) },
AutoInitialize = true AutoInitialize = true
)] )]
[ViewComponent(Name = "CmsCommentSetting")]
public class CommentSettingViewComponent : AbpViewComponent public class CommentSettingViewComponent : AbpViewComponent
{ {
public virtual IViewComponentResult Invoke() public virtual IViewComponentResult Invoke()

8
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/Index.cshtml

@ -1,14 +1,10 @@
@using Microsoft.AspNetCore.Mvc.Localization @using Microsoft.AspNetCore.Mvc.Localization
@using Volo.CmsKit.Localization @using Volo.CmsKit.Localization
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@section scripts { @section scripts {
<abp-script-bundle> <abp-script-bundle>
<abp-script src="/client-proxies/cms-kit-admin-proxy.js" /> <abp-script src="/client-proxies/cms-kit-admin-proxy.js" /> // TODO: Remove this line and then check
<abp-script src="/client-proxies/cms-kit-common-proxy.js" /> <abp-script src="/client-proxies/cms-kit-common-proxy.js" /> // TODO: Remove this line and then check
<abp-script src="/Pages/CmsKit/Shared/Components/Comments/index.js"></abp-script> <abp-script src="/Pages/CmsKit/Shared/Components/Comments/index.js"></abp-script>
</abp-script-bundle> </abp-script-bundle>
} }

10
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/index.js

@ -1,16 +1,16 @@
 var l = abp.localization.getResource("CmsKit");
var l = abp.localization.getResource("CmsKit");
(function () { (function () {
abp.widgets.CmsCommentSetting = function ($wrapper) { abp.widgets.CmsCommentSetting = function ($wrapper) {
var _service = volo.cmsKit.admin.comments.commentAdmin
var _service = volo.cmsKit.admin.comments.commentAdmin; ;
var _init = function () { var _init = function () {
_getSettings(); _getSettings();
_bindEvents(); _bindEvents();
}; };
var _getSettings = function () { var _getSettings = function () {
_service.getSettings().then(function (response) { _service.getSettings().then(function (response) {
$('#checkbox').prop('checked', response.commentRequireApprovement); // TODO: Rename checkbox id to something more meaningful.
$('#checkbox').prop('checked', response.commentRequireApprovement); // TODO: use $wrapper.find('#checkbox').prop('checked', response.commentRequireApprovement);
}) })
}; };

11
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj

@ -15,8 +15,6 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Volo.CmsKit.Common.Web\Volo.CmsKit.Common.Web.csproj" /> <ProjectReference Include="..\Volo.CmsKit.Common.Web\Volo.CmsKit.Common.Web.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj" /> <ProjectReference Include="..\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -26,21 +24,20 @@
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Pages\**\*.css" /> <EmbeddedResource Include="Pages\**\*.css" />
<EmbeddedResource Include="Pages\**\*.js" /> <EmbeddedResource Include="Pages\**\*.js" />
<EmbeddedResource Include="Components\**\*.js" />
<EmbeddedResource Include="Components\**\*.css" />
<EmbeddedResource Include="wwwroot\**\*.js" /> <EmbeddedResource Include="wwwroot\**\*.js" />
<EmbeddedResource Include="wwwroot\**\*.css" /> <EmbeddedResource Include="wwwroot\**\*.css" />
<Content Remove="Pages\**\*.css" /> <Content Remove="Pages\**\*.css" />
<Content Remove="Pages\**\*.js" /> <Content Remove="Pages\**\*.js" />
<Content Remove="Components\**\*.js" />
<Content Remove="Components\**\*.css" />
<Content Remove="wwwroot\**\*.js" /> <Content Remove="wwwroot\**\*.js" />
<Content Remove="wwwroot\**\*.css" /> <Content Remove="wwwroot\**\*.css" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Remove="Pages\CmsKit\Comments\Approve\index.js" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<_ContentIncludedByDefault Remove="Pages\Admin\Index.cshtml" /> <_ContentIncludedByDefault Remove="Pages\Admin\Index.cshtml" />
<_ContentIncludedByDefault Remove="Pages\Admin\_ViewImports.cshtml" /> <_ContentIncludedByDefault Remove="Pages\Admin\_ViewImports.cshtml" />
</ItemGroup> </ItemGroup>
</Project> </Project>

7
modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs

@ -7,15 +7,15 @@ using Volo.CmsKit.Reactions;
using Volo.CmsKit.Web.Icons; using Volo.CmsKit.Web.Icons;
using Markdig; using Markdig;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Settings; using Volo.Abp.SettingManagement.Web;
using Volo.CmsKit.Settings;
namespace Volo.CmsKit.Web; namespace Volo.CmsKit.Web;
[DependsOn( [DependsOn(
typeof(AbpAspNetCoreMvcUiThemeSharedModule), typeof(AbpAspNetCoreMvcUiThemeSharedModule),
typeof(CmsKitCommonApplicationContractsModule), typeof(CmsKitCommonApplicationContractsModule),
typeof(AbpAutoMapperModule) typeof(AbpAutoMapperModule),
typeof(AbpSettingManagementWebModule)
)] )]
public class CmsKitCommonWebModule : AbpModule public class CmsKitCommonWebModule : AbpModule
{ {
@ -54,7 +54,6 @@ public class CmsKitCommonWebModule : AbpModule
{ {
options.DisableModule(CmsKitCommonRemoteServiceConsts.ModuleName); options.DisableModule(CmsKitCommonRemoteServiceConsts.ModuleName);
}); });
} }
} }

2
modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj

@ -16,7 +16,7 @@
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Common.Application.Contracts\Volo.CmsKit.Common.Application.Contracts.csproj" /> <ProjectReference Include="..\Volo.CmsKit.Common.Application.Contracts\Volo.CmsKit.Common.Application.Contracts.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Domain\Volo.CmsKit.Domain.csproj" /> <ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

1
modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj

@ -18,6 +18,7 @@
<ProjectReference Include="..\Volo.CmsKit.Domain.Shared\Volo.CmsKit.Domain.Shared.csproj" /> <ProjectReference Include="..\Volo.CmsKit.Domain.Shared\Volo.CmsKit.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\modules\users\src\Volo.Abp.Users.Domain\Volo.Abp.Users.Domain.csproj" /> <ProjectReference Include="..\..\..\..\modules\users\src\Volo.Abp.Users.Domain\Volo.Abp.Users.Domain.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.BlobStoring\Volo.Abp.BlobStoring.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.BlobStoring\Volo.Abp.BlobStoring.csproj" />
<ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

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

@ -5,6 +5,7 @@ using Volo.Abp.Localization;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending;
using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.ObjectExtending.Modularity;
using Volo.Abp.SettingManagement;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.Users; using Volo.Abp.Users;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
@ -25,7 +26,8 @@ namespace Volo.CmsKit;
typeof(CmsKitDomainSharedModule), typeof(CmsKitDomainSharedModule),
typeof(AbpUsersDomainModule), typeof(AbpUsersDomainModule),
typeof(AbpDddDomainModule), typeof(AbpDddDomainModule),
typeof(AbpBlobStoringModule) typeof(AbpBlobStoringModule),
typeof(AbpSettingManagementDomainModule)
)] )]
public class CmsKitDomainModule : AbpModule public class CmsKitDomainModule : AbpModule
{ {

8
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/Comment.cs

@ -27,7 +27,7 @@ public class Comment : AggregateRoot<Guid>, IHasCreationTime, IMustHaveCreator,
public virtual string IdempotencyToken { get; set; } public virtual string IdempotencyToken { get; set; }
public virtual bool? IsApproved { get; private set; } public virtual bool? IsApproved { get; set; }
protected Comment() protected Comment()
{ {
@ -64,10 +64,4 @@ public class Comment : AggregateRoot<Guid>, IHasCreationTime, IMustHaveCreator,
{ {
Text = Check.NotNullOrWhiteSpace(text, nameof(text), CommentConsts.MaxTextLength); Text = Check.NotNullOrWhiteSpace(text, nameof(text), CommentConsts.MaxTextLength);
} }
public virtual Comment SetApprovalStatus([NotNull] bool isApproved)
{
IsApproved = isApproved;
return this;
}
} }

58
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs

@ -9,44 +9,44 @@ namespace Volo.CmsKit.Comments;
public interface ICommentRepository : IBasicRepository<Comment, Guid> public interface ICommentRepository : IBasicRepository<Comment, Guid>
{ {
Task<CommentWithAuthorQueryResultItem> GetWithAuthorAsync(Guid id, CancellationToken cancellationToken = default); Task<CommentWithAuthorQueryResultItem> GetWithAuthorAsync(Guid id, CancellationToken cancellationToken = default);
Task<List<CommentWithAuthorQueryResultItem>> GetListAsync( Task<List<CommentWithAuthorQueryResultItem>> GetListAsync(
string filter = null, string filter = null,
string entityType = null, string entityType = null,
Guid? repliedCommentId = null, Guid? repliedCommentId = null,
string authorUsername = null, string authorUsername = null,
DateTime? creationStartDate = null, DateTime? creationStartDate = null,
DateTime? creationEndDate = null, DateTime? creationEndDate = null,
string sorting = null, string sorting = null,
int maxResultCount = int.MaxValue, int maxResultCount = int.MaxValue,
int skipCount = 0, int skipCount = 0,
CommentApproveState commentApproveState = CommentApproveState.All, CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
); );
Task<long> GetCountAsync( Task<long> GetCountAsync(
string text = null, string text = null,
string entityType = null, string entityType = null,
Guid? repliedCommentId = null, Guid? repliedCommentId = null,
string authorUsername = null, string authorUsername = null,
DateTime? creationStartDate = null, DateTime? creationStartDate = null,
DateTime? creationEndDate = null, DateTime? creationEndDate = null,
CommentApproveState commentApproveState = CommentApproveState.All, CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
); );
Task<List<CommentWithAuthorQueryResultItem>> GetListWithAuthorsAsync( Task<List<CommentWithAuthorQueryResultItem>> GetListWithAuthorsAsync(
[NotNull] string entityType, [NotNull] string entityType,
[NotNull] string entityId, [NotNull] string entityId,
CommentApproveState commentApproveState = CommentApproveState.All, CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
); );
Task DeleteWithRepliesAsync( Task DeleteWithRepliesAsync(
Comment comment, Comment comment,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
); );
Task<bool> ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default); Task<bool> ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default);
} }

7
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs

@ -6,11 +6,8 @@ public class CmsKitSettingDefinitionProvider : SettingDefinitionProvider
{ {
public override void Define(ISettingDefinitionContext context) public override void Define(ISettingDefinitionContext context)
{ {
/* Define module settings here.
* Use names from CmsKitSettings class.
*/
context.Add( context.Add(
new SettingDefinition(AppSettings.CommentRequireApprovement, "true") new SettingDefinition(AppSettings.CommentRequireApprovement, "true") // Check the default value
) ; );
} }
} }

11
modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs

@ -89,7 +89,6 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
DateTime? creationEndDate = null, DateTime? creationEndDate = null,
CommentApproveState commentApproveState = CommentApproveState.All, CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
) )
{ {
var token = GetCancellationToken(cancellationToken); var token = GetCancellationToken(cancellationToken);
@ -125,13 +124,9 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
Author = user Author = user
}; };
query = commentApproveState switch query.WhereIf(commentApproveState == CommentApproveState.Approved, c => c.Comment.IsApproved == true);
{ query.WhereIf(commentApproveState == (CommentApproveState.Approved | CommentApproveState.Waiting), c => c.Comment.IsApproved == true || c.Comment.IsApproved == null);
CommentApproveState.Approved => query.Where(c => c.Comment.IsApproved == true),
CommentApproveState.Approved | CommentApproveState.Waiting => query.Where(c => c.Comment.IsApproved == true || c.Comment.IsApproved == null),
_ => query
};
return await query.ToListAsync(GetCancellationToken(cancellationToken)); return await query.ToListAsync(GetCancellationToken(cancellationToken));
} }

8
modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj

@ -9,15 +9,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Common.Application\Volo.CmsKit.Common.Application.csproj" /> <ProjectReference Include="..\Volo.CmsKit.Common.Application\Volo.CmsKit.Common.Application.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Public.Application.Contracts\Volo.CmsKit.Public.Application.Contracts.csproj" /> <ProjectReference Include="..\Volo.CmsKit.Public.Application.Contracts\Volo.CmsKit.Public.Application.Contracts.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="Volo.Abp.SettingManagement.Domain">
<HintPath>..\..\..\setting-management\src\Volo.Abp.SettingManagement.Domain\obj\Debug\net8.0\ref\Volo.Abp.SettingManagement.Domain.dll</HintPath>
</Reference>
</ItemGroup>
</Project> </Project>

Loading…
Cancel
Save