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 _hubContext; public SignalRBoardNotificationPublisher(IHubContext 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; } }