27 lines
888 B
C#
27 lines
888 B
C#
using IM_API.Domain.Events;
|
|
using IM_API.Dtos;
|
|
using IM_API.Hubs;
|
|
using IM_API.VOs.Group;
|
|
using MassTransit;
|
|
using Microsoft.AspNetCore.SignalR;
|
|
|
|
namespace IM_API.Application.EventHandlers.GroupInviteHandler
|
|
{
|
|
public class GroupInviteSignalRHandler : IConsumer<GroupInviteEvent>
|
|
{
|
|
private readonly IHubContext<ChatHub> _hub;
|
|
public GroupInviteSignalRHandler(IHubContext<ChatHub> hub)
|
|
{
|
|
_hub = hub;
|
|
}
|
|
|
|
public async Task Consume(ConsumeContext<GroupInviteEvent> context)
|
|
{
|
|
var @event = context.Message;
|
|
var list = @event.Ids.Select(id => id.ToString()).ToArray();
|
|
var msg = new HubResponse<GroupInviteVo>("Event", new GroupInviteVo { GroupId = @event.GroupId, UserId = @event.UserId });
|
|
await _hub.Clients.Users(list).SendAsync("ReceiveMessage", msg);
|
|
}
|
|
}
|
|
}
|