private void AddSeatToRoom(LabelIdMapping labelIdMapping)
 {
     if (_seats.All(x => x.Id != labelIdMapping.Id))
     {
         _seats.Add(labelIdMapping);
     }
 }
        private void buttonProcessOrder_Click(object sender, RoutedEventArgs e)
        {
            LabelIdMapping labelId = listOrders.SelectedItem as LabelIdMapping;
            Message        message = orderQueue.ReceiveById(labelId.Id);

            listOrders.Items.Remove(labelId);
            listOrders.SelectedIndex     = -1;
            buttonProcessOrder.IsEnabled = false;
            textCompany.Text             = string.Empty;
            textContact.Text             = string.Empty;
            textCourse.Text = string.Empty;

            MessageBox.Show("Course order processed", "Course Order Receiver",
                            MessageBoxButton.OK, MessageBoxImage.Information);
        }
 private void PeekMessages()
 {
     using (MessageEnumerator messagesEnumerator =
                orderQueue.GetMessageEnumerator2())
     {
         while (messagesEnumerator.MoveNext(TimeSpan.FromHours(3)))
         {
             var labelId = new LabelIdMapping()
             {
                 Id    = messagesEnumerator.Current.Id,
                 Label = messagesEnumerator.Current.Label
             };
             Dispatcher.Invoke(DispatcherPriority.Normal,
                               new Action <LabelIdMapping>(AddListItem), labelId);
         }
     }
     MessageBox.Show("No orders in the last 3 hours. Exiting thread",
                     "Course Order Receiver", MessageBoxButton.OK,
                     MessageBoxImage.Information);
 }
 private void PeekMessages()
 {
     using (MessageEnumerator messagesEnumerator =
           orderQueue.GetMessageEnumerator2())
     {
         while (messagesEnumerator.MoveNext(TimeSpan.FromHours(3)))
         {
             var labelId = new LabelIdMapping()
             {
                 Id = messagesEnumerator.Current.Id,
                 Label = messagesEnumerator.Current.Label
             };
             Dispatcher.Invoke(DispatcherPriority.Normal,
                   new Action<LabelIdMapping>(AddListItem), labelId);
         }
     }
     MessageBox.Show("No orders in the last 3 hours. Exiting thread",
           "Course Order Receiver", MessageBoxButton.OK,
           MessageBoxImage.Information);
 }
        private IEnumerable <LabelIdMapping> PeekMessages(MessageQueue queue)
        {
            var counter = 0;

            using (var msgEnumerator = queue.GetMessageEnumerator2())
            {
                while (msgEnumerator.MoveNext(TimeSpan.FromMilliseconds(10)) && msgEnumerator.Current != null)
                {
                    counter++;
                    var labelId = new LabelIdMapping
                    {
                        Id    = msgEnumerator.Current.Id,
                        Label = msgEnumerator.Current.Label
                    };

                    Dispatcher.Invoke(new Action <LabelIdMapping>(AddSeatToRoom), labelId);
                }
            }

            return((counter > 0) ? _seats : new List <LabelIdMapping>());
        }
Exemple #6
0
        /// <summary>
        /// SelectedIndex Changed event handler for ListBox
        ///  - Peeks at the Message selected in the Queue
        /// and Display information about the CD order in the queue
        /// </summary>

        private void lBOrders_SelectedIndexChanged(object sender, EventArgs e)
        {
            LabelIdMapping labelID = (LabelIdMapping)lBOrders.SelectedItem;

            if (labelID == null)
            {
                return;
            }

            MessagePropertyFilter filter = new MessagePropertyFilter();

            filter.SetDefaults();
            filter.Priority = true;
            mqOrderQueue.MessageReadPropertyFilter = filter;
            System.Messaging.Message message = mqOrderQueue.PeekById(labelID.Id);

            if (message.Body is CDOrder)
            {
                if (message.Priority > MessagePriority.Normal)
                {
                    lblFast.Visible = true;
                }
                else
                {
                    lblFast.Visible = false;
                }
                CDOrder cdOrder = message.Body as CDOrder;

                tBCDTitle.Text     = cdOrder.Product.Title;
                tBCount.Text       = cdOrder.Quantity.ToString();
                tBCompany.Text     = cdOrder.Customer.Company;
                tBContact.Text     = cdOrder.Customer.Contact;
                tBSent.Text        = cdOrder.OrderTime.ToString("f");
                btnProcess.Enabled = true;
            }
            else
            {
                MessageBox.Show("The selected Item is not a book order");
            }
        }
Exemple #7
0
        /// <summary>
        /// Thread function to peek at the messages in the Queue
        /// Adds newly arrived Orders in the message queue to the ListBox
        /// </summary>
        protected void PeekMessages()
        {
            MessageEnumerator messageEnum = mqOrderQueue.GetMessageEnumerator2();

            //We keep track of Messages in List box already
            ordersRetrieved = new ArrayList();

            //The MessageEnumerator walks through the messages in the queue
            //MoveNext is set to a 4 hour time-out if no messages are in the queue

            while (messageEnum.MoveNext(new TimeSpan(4, 0, 0)))
            {
                LabelIdMapping labelID = new LabelIdMapping(messageEnum.Current.Label,
                                                            messageEnum.Current.Id);
                if (!ordersRetrieved.Contains(messageEnum.Current.Id))
                {
                    //   lBOrders.Items.Add(labelID);
                    this.lBOrders.Invoke(new AddListBoxDelegate(AddListBox), labelID);
                }
                this.ordersRetrieved.Add(messageEnum.Current.Id);
            }
        }
Exemple #8
0
        private void btnProcess_Click(object sender, EventArgs e)
        {
            //The LabelIdMapping helps to map the Label of a message with the message Id.
            //This enables each message to be uniquely identified
            LabelIdMapping labelID = (LabelIdMapping)lBOrders.SelectedItem;

            System.Messaging.Message message = mqOrderQueue.ReceiveById(labelID.Id);

            lBOrders.Items.Remove(labelID);
            lBOrders.SelectedIndex = -1;
            btnProcess.Enabled     = false;

            System.Messaging.Message response = new System.Messaging.Message();

            CDOrder ackOrder = message.Body as CDOrder;

            if (null != ackOrder)
            {
                ackOrder.OrderTime = DateTime.Now;

                response.Body          = ackOrder;
                response.Label         = message.Label;
                response.CorrelationId = message.Id;

                message.ResponseQueue.Send(response);

                tBCDTitle.Text = String.Empty;
                tBCount.Text   = String.Empty;
                tBCompany.Text = String.Empty;
                tBContact.Text = String.Empty;
                tBSent.Text    = String.Empty;
                MessageBox.Show("The order was shipped");
            }
            else
            {
                MessageBox.Show("There is an unexpected item in the Queue");
            }
        }
        private void listOrders_SelectionChanged(object sender, RoutedEventArgs e)
        {
            LabelIdMapping labelId = listOrders.SelectedItem as LabelIdMapping;

            if (labelId == null)
            {
                return;
            }

            orderQueue.MessageReadPropertyFilter.Priority = true;
            Message message = orderQueue.PeekById(labelId.Id);

            CourseOrder order = message.Body as CourseOrder;

            if (order != null)
            {
                textCourse.Text              = order.Course.Title;
                textCompany.Text             = order.Customer.Company;
                textContact.Text             = order.Customer.Contact;
                buttonProcessOrder.IsEnabled = true;

                if (message.Priority > MessagePriority.Normal)
                {
                    labelPriority.Visibility = Visibility.Visible;
                }
                else
                {
                    labelPriority.Visibility = Visibility.Hidden;
                }
            }
            else
            {
                MessageBox.Show("The selected item is not a course order",
                                "Course Order Receiver", MessageBoxButton.OK,
                                MessageBoxImage.Warning);
            }
        }
Exemple #10
0
 /// <summary>
 /// Function to Add incoming CD Orders to the ListBox
 /// </summary>
 private void AddListBox(LabelIdMapping labelID)
 {
     lBOrders.Items.Add(labelID);
 }
 private void AddListItem(LabelIdMapping labelIdMapping)
 {
     listOrders.Items.Add(labelIdMapping);
 }
 private void AddListItem(LabelIdMapping labelIdMapping)
 {
     listOrders.Items.Add(labelIdMapping);
 }