diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj
index 8515d28e83..9cbfc52b80 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj
@@ -10,6 +10,7 @@
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicApplicationContractsModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicApplicationContractsModule.cs
index 92ab969bf6..52996a1bdd 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicApplicationContractsModule.cs
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicApplicationContractsModule.cs
@@ -1,9 +1,11 @@
using Volo.Abp.Modularity;
+using Volo.Abp.EventBus;
namespace Volo.CmsKit.Public
{
[DependsOn(
- typeof(CmsKitCommonApplicationContractsModule)
+ typeof(CmsKitCommonApplicationContractsModule),
+ typeof(AbpEventBusModule)
)]
public class CmsKitPublicApplicationContractsModule : AbpModule
{
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreatedCommentEvent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreatedCommentEvent.cs
new file mode 100644
index 0000000000..7db2c10d8b
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Comments/CreatedCommentEvent.cs
@@ -0,0 +1,11 @@
+using System;
+using Volo.Abp.EventBus;
+
+namespace Volo.CmsKit.Public.Comments
+{
+ [EventName("Volo.CmsKit.Comments.Created")]
+ public class CreatedCommentEvent
+ {
+ public Guid Id { get; set; }
+ }
+}
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs
index 88bcef9a1e..a4ce4a2b46 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs
@@ -7,6 +7,8 @@ using Microsoft.Extensions.Options;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
+using Volo.Abp.EventBus.Distributed;
+using Volo.Abp.Uow;
using Volo.Abp.Users;
using Volo.CmsKit.Comments;
using Volo.CmsKit.Users;
@@ -18,15 +20,21 @@ namespace Volo.CmsKit.Public.Comments
protected CmsKitOptions CmsKitOptions { get; }
protected ICommentRepository CommentRepository { get; }
protected ICmsUserLookupService CmsUserLookupService { get; }
+ public IDistributedEventBus DistributedEventBus { get; }
+ public IUnitOfWorkManager UnitOfWorkManager { get; }
public CommentPublicAppService(
ICommentRepository commentRepository,
ICmsUserLookupService cmsUserLookupService,
+ IDistributedEventBus distributedEventBus,
+ IUnitOfWorkManager unitOfWorkManager,
IOptions cmsKitOptions)
{
CmsKitOptions = cmsKitOptions.Value;
CommentRepository = commentRepository;
CmsUserLookupService = cmsUserLookupService;
+ DistributedEventBus = distributedEventBus;
+ UnitOfWorkManager = unitOfWorkManager;
}
public virtual async Task> GetListAsync(string entityType, string entityId)
@@ -56,6 +64,14 @@ namespace Volo.CmsKit.Public.Comments
)
);
+
+ await UnitOfWorkManager.Current.SaveChangesAsync();
+
+ await DistributedEventBus.PublishAsync(new CreatedCommentEvent
+ {
+ Id = comment.Id
+ });
+
return ObjectMapper.Map(comment);
}