// Send all users notification private async Task CreateNotification(string username, string aircraftName) { var allUsers = await _context.Users.ToListAsync(); var body = $"{username} added new aircraft {aircraftName}"; foreach (var user in allUsers) { var dbNotification = await _context.Notifications.AddAsync(new Notification { UserId = user.Id, IsRead = false, Body = body }); var onlineUsers = _hubNotification.GetOnlineUsers(); foreach (var onlineUser in onlineUsers) { if (onlineUser == user.UserName) { await _hubNotification.SendNotificationParallel(onlineUser, new NotificationDto { Body = dbNotification.Entity.Body, Id = dbNotification.Entity.Id, IsRead = dbNotification.Entity.IsRead }); } } } }
private async Task CreateNotification(string username, Domain.Aircraft aircraft) { var subscribers = await _context.Users .Where(x => x.Subscribes.Any(s => s.AircraftId == aircraft.Id)) .ToListAsync(); var body = $"{username} has changed {aircraft.AircraftName}"; foreach (var subscriber in subscribers) { var dbNotification = await _context.Notifications.AddAsync(new Domain.Notification { UserId = subscriber.Id, IsRead = false, Body = body }); var onlineUsers = _hubNotification.GetOnlineUsers(); foreach (var onlineUser in onlineUsers) { if (onlineUser == subscriber.UserName) { await _hubNotification.SendNotificationParallel(onlineUser, new Common.Notifications.NotificationDto { Body = dbNotification.Entity.Body, Id = dbNotification.Entity.Id, IsRead = dbNotification.Entity.IsRead }); } } } }