添加项目文件。
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
using GroupService.Domain.Events;
|
||||
using GroupService.WebApi.Application.GroupMember;
|
||||
using IM.Commons;
|
||||
using IM.Commons.IntegrationEvents;
|
||||
using MassTransit;
|
||||
using MediatR;
|
||||
|
||||
namespace GroupService.WebApi.Application.EventHandler
|
||||
{
|
||||
public class GroupRequestPassedHandler : INotificationHandler<GroupJoinRequestPassedDomainEvent>
|
||||
{
|
||||
private readonly IPublishEndpoint endpoint;
|
||||
private readonly Application.GroupMember.GroupMemberService memberService;
|
||||
private readonly ILogger<GroupRequestPassedHandler> logger;
|
||||
|
||||
public GroupRequestPassedHandler(IPublishEndpoint endpoint,
|
||||
GroupMemberService memberService, ILogger<GroupRequestPassedHandler> logger)
|
||||
{
|
||||
this.endpoint = endpoint;
|
||||
this.memberService = memberService;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
public async Task Handle(GroupJoinRequestPassedDomainEvent notification, CancellationToken cancellationToken)
|
||||
{
|
||||
var request = notification.Request;
|
||||
|
||||
var memberCreateRes = await memberService.CreateAsync(request.GroupId, request.UserId);
|
||||
|
||||
await endpoint.Publish(new GroupRequestPassedEvent(request.Id, request.GroupId, request.GroupProfile.GroupName,
|
||||
request.GroupProfile.Avatar, request.UserId,
|
||||
request.UserProfile.NickName, request.UserProfile.Avatar,
|
||||
request.OperatorId.Value, request.OperatorName,
|
||||
request.OperatorAvatar, request.Description,
|
||||
request.CreationTime, request.ModificationTime.Value));
|
||||
|
||||
if (!memberCreateRes.Succeeded)
|
||||
{
|
||||
logger.LogError(memberCreateRes.Message);
|
||||
throw new EventHandlerException(memberCreateRes.Message);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user