添加项目文件。
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
using GroupService.Domain.Events;
|
||||
using GroupService.WebApi.Application.GroupRequest;
|
||||
using IM.Commons;
|
||||
using IM.Commons.IntegrationEvents;
|
||||
using MassTransit;
|
||||
using MediatR;
|
||||
|
||||
namespace GroupService.WebApi.Application.EventHandler
|
||||
{
|
||||
public class GroupInvitationEventHandler :
|
||||
INotificationHandler<GroupInvitationAcceptDomainEvent>
|
||||
, INotificationHandler<GroupInvitationCreateDomainEvent>
|
||||
{
|
||||
private readonly IPublishEndpoint endpoint;
|
||||
private readonly GroupRequestService requestService;
|
||||
|
||||
public GroupInvitationEventHandler(IPublishEndpoint endpoint, GroupRequestService requestService)
|
||||
{
|
||||
this.endpoint = endpoint;
|
||||
this.requestService = requestService;
|
||||
}
|
||||
|
||||
public async Task Handle(GroupInvitationAcceptDomainEvent notification, CancellationToken cancellationToken)
|
||||
{
|
||||
var invitation = notification.Invitation;
|
||||
var res = await requestService.CreateAsync(invitation.GroupId, invitation.UserId,
|
||||
$"邀请入群"
|
||||
);
|
||||
|
||||
await endpoint.Publish(new GroupInvitationAcceptEvent(invitation.Id, invitation.UserId, invitation.UserProfile.NickName, invitation.UserProfile.Avatar
|
||||
, invitation.GroupId, invitation.GroupProfile.GroupName, invitation.GroupProfile.Avatar, invitation.OperatorId
|
||||
, invitation.OperatorProfile.NickName, invitation.OperatorProfile.Avatar
|
||||
), cancellationToken);
|
||||
|
||||
if (!res.Succeeded)
|
||||
{
|
||||
|
||||
throw new EventHandlerException(res.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task Handle(GroupInvitationCreateDomainEvent notification, CancellationToken cancellationToken)
|
||||
{
|
||||
var invitation = notification.Invitation;
|
||||
await endpoint.Publish(new GroupInvitationCreateEvent(invitation.Id, invitation.UserId, invitation.UserProfile.NickName, invitation.UserProfile.Avatar
|
||||
, invitation.GroupId, invitation.GroupProfile.GroupName, invitation.GroupProfile.Avatar, invitation.OperatorId
|
||||
, invitation.OperatorProfile.NickName, invitation.OperatorProfile.Avatar), cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user