public void AddQueue(Queue queue) { logger.Debug(nameof(AddQueue)); if (user.EmailAddress.EndsWith("softwire.com") && !string.IsNullOrWhiteSpace(queue.RestrictToGroup) && !groupsCache.UserIsInGroup(queue.RestrictToGroup)) { logger.Info("Queue ignored. User is not in group " + queue.RestrictToGroup); return; } queueList.Dispatcher.Invoke(() => { queue.User = user; queues.Add(queue); queuesById.Add(queue.Id, queue); var window = new QueueNotification(queue); window.JoinQueue += (s, e) => hub.JoinQueue(queue.Id); window.LeaveQueue += (s, e) => hub.LeaveQueue(queue.Id); window.ActivateQueue += (s, e) => hub.ActivateQueue(queue.Id); window.DeactivateQueue += (s, e) => hub.DeactivateQueue(queue.Id); window.CloseQueue += (s, e) => hub.CloseQueue(queue.Id); window.NagQueue += (s, e) => hub.NagQueue(queue.Id); window.SendMessage += (sender, args) => hub.MessageQueue(queue.Id, args.Message); queueList.QueuesPanel.Children.Insert(0, window); }); alertDisplayTimer.ShowAlert(); }