using Marco.Pms.Services.Hubs; using Marco.Pms.Services.Service.ServiceInterfaces; using MarcoBMS.Services.Service; using Microsoft.AspNetCore.SignalR; namespace Marco.Pms.Services.Service { public class SignalRService : ISignalRService { private readonly IHubContext _signalR; private readonly ILoggingService _logger; public SignalRService(IHubContext signalR, ILoggingService logger) { _signalR = signalR ?? throw new ArgumentNullException(nameof(signalR)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); } public async Task SendNotificationAsync(object notification) { try { await _signalR.Clients.All.SendAsync("NotificationEventHandler", notification); } catch (Exception ex) { _logger.LogError(ex, "Exception occured during sending notification through signalR"); } } } }