private TreeNodeViewModel CreateQueueNode(TreeNodeViewModel parentNode, QueueInfo queue)
        {
            TreeNodeViewModel node = new TreeNodeViewModel()
            {
                Parent      = parentNode,
                IsExpanded  = false,
                NodeIcon    = queue.Status ? QUEUE_ICON : ALERT_QUEUE_ICON,
                NodeText    = queue.Name,
                NodeToolTip = queue.ToString(),
                NodePayload = queue
            };

            node.ContextMenuItems.Add(new MenuItemViewModel()
            {
                MenuItemHeader  = "Edit queue settings",
                MenuItemIcon    = EDIT_QUEUE_ICON,
                MenuItemCommand = new RelayCommand(EditQueueCommand),
                MenuItemPayload = node
            });
            node.ContextMenuItems.Add(new MenuItemViewModel()
            {
                IsSeparator = true
            });
            node.ContextMenuItems.Add(new MenuItemViewModel()
            {
                MenuItemHeader  = "Send test message to queue",
                MenuItemIcon    = SEND_MESSAGE_ICON,
                MenuItemCommand = new RelayCommand(SendTestMessageCommand),
                MenuItemPayload = node
            });
            node.ContextMenuItems.Add(new MenuItemViewModel()
            {
                MenuItemHeader  = "Receive test message from queue",
                MenuItemIcon    = RECEIVE_MESSAGE_ICON,
                MenuItemCommand = new RelayCommand(ReceiveTestMessageCommand),
                MenuItemPayload = node
            });
            node.ContextMenuItems.Add(new MenuItemViewModel()
            {
                IsSeparator = true
            });
            node.ContextMenuItems.Add(new MenuItemViewModel()
            {
                MenuItemHeader  = "Drop queue",
                MenuItemIcon    = DROP_QUEUE_ICON,
                MenuItemCommand = new RelayCommand(DropQueueCommand),
                MenuItemPayload = node
            });

            return(node);
        }