using GroupService.Domain.Events; using IM.Commons.IntegrationEvents; using MassTransit; using MediatR; namespace GroupService.WebApi.Application.EventHandler { public class GroupMemberJoinedHandler : INotificationHandler { private readonly IPublishEndpoint endpoint; public GroupMemberJoinedHandler(IPublishEndpoint endpoint) { this.endpoint = endpoint; } public async Task Handle(GroupMemberJoinedDomainEvent notification, CancellationToken cancellationToken) { var member = notification.Member; await endpoint.Publish(new GroupMemberJoinedEvent(member.Id, member.UserId, member.GroupId, member.GroupNickName, member.Avatar, member.Role.ToString()), cancellationToken); } } }