Пример #1
0
        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();
        }