hMailServer.Administrator.ucStatus.RefreshDeliveryQueue C# (CSharp) Method

RefreshDeliveryQueue() private method

private RefreshDeliveryQueue ( ) : void
return void
        private void RefreshDeliveryQueue()
        {
            using (new WaitCursor())
               {
              listDeliveryQueue.Items.Clear();

              hMailServer.Status status = _application.Status;

              string queue = status.UndeliveredMessages;

              string[] messages = queue.Split(Environment.NewLine.ToCharArray());

              List<ListViewItem> itemsToAdd = new List<ListViewItem>();

              foreach (string message in messages)
              {
                 if (message.Length == 0)
                    continue;

                 string[] columns = message.Split('\t');

                 ListViewItem item = new ListViewItem(columns[0]);
                 item.SubItems.Add(columns[1]);
                 item.SubItems.Add(columns[2]);
                 item.SubItems.Add(columns[3]);

                 if (columns[4] == "1901-01-01 00:00:00")
                    item.SubItems.Add("As soon as possible");
                 else
                    // This is added to show HOLD in Status
                    // Note ends in 1 to signify difference
                    if (columns[4] == "1901-01-01 00:00:01")
                       item.SubItems.Add("Route HOLD");
                    else
                       item.SubItems.Add(columns[4]);

                 item.SubItems.Add(columns[7]);

                 item.SubItems.Add(columns[5]);

                 item.Tag = columns[0];

                 itemsToAdd.Add(item);
              }

              listDeliveryQueue.Items.AddRange(itemsToAdd.ToArray());

              string messagesCount = "%d messages in queue";
              messagesCount = messagesCount.Replace("%d", listDeliveryQueue.Items.Count.ToString());
              labelNumberOfMessages.Text = messagesCount;
              Marshal.ReleaseComObject(status);
               }
        }