Beispiel #1
0
            // 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
                            });
                        }
                    }
                }
            }
Beispiel #2
0
            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
                            });
                        }
                    }
                }
            }