Files
Backend-Api/ServiceHost/Notifications/ProgramManager/SignalRBoardNotificationPublisher.cs

30 lines
986 B
C#

using GozareshgirProgramManager.Application.Interfaces;
using GozareshgirProgramManager.Domain.ProjectAgg.Enums;
using Microsoft.AspNetCore.SignalR;
using ServiceHost.Hubs.ProgramManager;
namespace ServiceHost.Notifications.ProgramManager;
public class SignalRBoardNotificationPublisher:IBoardNotificationPublisher
{
private readonly IHubContext<ProjectBoardHub> _hubContext;
public SignalRBoardNotificationPublisher(IHubContext<ProjectBoardHub> hubContext)
{
_hubContext = hubContext;
}
public Task SendProjectStatusChanged(long userId, TaskSectionStatus oldStatus,
TaskSectionStatus newStatus, Guid sectionId)
{
var payload = new
{
UserId = userId,
OldStatus = oldStatus,
NewStatus = newStatus,
SectionId = sectionId
};
_hubContext.Clients.Group($"pm.user-{userId}").SendAsync("ReceiveProjectStatusChanged",payload);
return Task.CompletedTask;
}
}