public ContainerForm(ServiceBusHelper serviceBusHelper, MainForm mainForm, SubscriptionWrapper subscriptionWrapper)
        {
            try
            {
                InitializeComponent();
                this.mainForm        = mainForm;
                mainSplitterDistance = mainSplitContainer.SplitterDistance;
                SuspendLayout();
                panelMain.SuspendDrawing();
                panelMain.Controls.Clear();
                panelMain.BackColor = SystemColors.GradientInactiveCaption;

                testSubscriptionControl = new TestSubscriptionControl(mainForm, WriteToLog, new ServiceBusHelper(WriteToLog, serviceBusHelper), subscriptionWrapper)
                {
                    Location = new Point(1, panelMain.HeaderHeight + 1)
                };

                testSubscriptionControl.btnCancel.Click -= testSubscriptionControl.btnCancel_Click;
                testSubscriptionControl.btnCancel.Click += BtnCancelOnClick;
                testSubscriptionControl.Focus();

                Text = string.Format(TestSubscriptionFormat, subscriptionWrapper.SubscriptionDescription.Name);

                panelMain.HeaderText = string.Format(HeaderTextTestSubscriptionFormat, subscriptionWrapper.SubscriptionDescription.Name);
                panelMain.Controls.Add(testSubscriptionControl);
                SetStyle(ControlStyles.ResizeRedraw, true);
            }
            finally
            {
                panelMain.ResumeDrawing();
                ResumeLayout();
            }
        }
 public HandleSubscriptionControl(WriteToLogDelegate writeToLog, ServiceBusHelper serviceBusHelper, SubscriptionWrapper wrapper)
 {
     this.writeToLog       = writeToLog;
     this.serviceBusHelper = serviceBusHelper;
     this.wrapper          = wrapper;
     InitializeComponent();
     InitializeData();
 }
 public TestSubscriptionControl(MainForm mainForm,
                                WriteToLogDelegate writeToLog,
                                ServiceBusHelper serviceBusHelper,
                                SubscriptionWrapper subscriptionWrapper)
 {
     this.mainForm            = mainForm;
     this.writeToLog          = writeToLog;
     this.serviceBusHelper    = serviceBusHelper;
     this.subscriptionWrapper = subscriptionWrapper;
     InitializeComponent();
     InitializeControls();
 }
        public ContainerForm(ServiceBusHelper serviceBusHelper, MainForm mainForm, FormTypeEnum formType, SubscriptionWrapper subscriptionWrapper)
        {
            try
            {
                InitializeComponent();
                Task.Factory.StartNew(AsyncWriteToLog).ContinueWith(t =>
                {
                    if (t.IsFaulted && t.Exception != null)
                    {
                        WriteToLog(t.Exception.Message);
                    }
                });
                this.mainForm = mainForm;
                mainSplitterDistance = mainSplitContainer.SplitterDistance;
                SuspendLayout();
                panelMain.SuspendDrawing();
                panelMain.Controls.Clear();
                panelMain.BackColor = SystemColors.GradientInactiveCaption;

                if (formType == FormTypeEnum.Listener)
                {
                    var listenerControl = new ListenerControl(WriteToLog, StopLog, StartLog, new ServiceBusHelper(WriteToLog, serviceBusHelper), subscriptionWrapper.SubscriptionDescription)
                    {
                        Location = new Point(1, panelMain.HeaderHeight + 1),
                        Size = new Size(panelMain.Size.Width - 3, subscriptionWrapper.SubscriptionDescription.RequiresSession ? 544 : 520),
                        Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right
                    };
                    listenerControl.Focus();

                    Text = string.Format(SubscriptionListenerFormat, subscriptionWrapper.SubscriptionDescription.Name);
                    mainSplitContainer.SplitterDistance = subscriptionWrapper.SubscriptionDescription.RequiresSession ? 570 : listenerControl.Size.Height + 26;
                    panelMain.HeaderText = string.Format(HeaderTextSubscriptionListenerFormat, subscriptionWrapper.SubscriptionDescription.Name);
                    panelMain.Controls.Add(listenerControl);
                }
                else
                {
                    testSubscriptionControl = new TestSubscriptionControl(mainForm, WriteToLog, StopLog, StartLog, new ServiceBusHelper(WriteToLog, serviceBusHelper), subscriptionWrapper)
                    {
                        Location = new Point(1, panelMain.HeaderHeight + 1),
                        Size = new Size(panelMain.Size.Width - 3, panelMain.Size.Height - 26),
                        Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right
                    };

                    testSubscriptionControl.btnCancel.Click -= testSubscriptionControl.btnCancel_Click;
                    testSubscriptionControl.btnCancel.Click += BtnCancelOnClick;
                    testSubscriptionControl.Focus();

                    Text = string.Format(TestSubscriptionFormat, subscriptionWrapper.SubscriptionDescription.Name);

                    panelMain.HeaderText = string.Format(HeaderTextTestSubscriptionFormat, subscriptionWrapper.SubscriptionDescription.Name);
                    panelMain.Controls.Add(testSubscriptionControl);
                }
                SetStyle(ControlStyles.ResizeRedraw, true);
            }
            finally
            {
                panelMain.ResumeDrawing();
                ResumeLayout();
            }
        }
Exemplo n.º 5
0
        private void TestSubscription(SubscriptionWrapper subscriptionWrapper, bool sdi)
        {
            if (sdi)
            {
                TestSubscriptionControl subscriptionControl = null;

                try
                {
                    panelMain.SuspendDrawing();
                    foreach (var userControl in panelMain.Controls.OfType<UserControl>())
                    {
                        userControl.Dispose();
                    }
                    panelMain.Controls.Clear();
                    panelMain.BackColor = SystemColors.GradientInactiveCaption;
                    subscriptionControl = new TestSubscriptionControl(this,
                                                                      WriteToLog,
                                                                      StopLog,
                                                                      StartLog,
                                                                      serviceBusHelper,
                                                                      subscriptionWrapper);
                    subscriptionControl.SuspendDrawing();
                    subscriptionControl.Location = new Point(1, panelLog.HeaderHeight + 1);
                    panelMain.Controls.Add(subscriptionControl);
                    SetControlSize(subscriptionControl);
                    subscriptionControl.OnCancel += MainForm_OnCancel;
                }
                catch (Exception ex)
                {
                    HandleException(ex);
                }
                finally
                {
                    panelMain.ResumeDrawing();
                    if (subscriptionControl != null)
                    {
                        subscriptionControl.ResumeDrawing();
                    }
                }
            }
            else
            {
                var form = new ContainerForm(serviceBusHelper, this, FormTypeEnum.Test, subscriptionWrapper);
                form.Show();
            }
        }
Exemplo n.º 6
0
        private void ShowSubscription(SubscriptionWrapper wrapper)
        {
            HandleSubscriptionControl subscriptionControl = null;

            try
            {
                panelMain.SuspendDrawing();
                foreach (var userControl in panelMain.Controls.OfType<UserControl>())
                {
                    userControl.Dispose();
                }
                panelMain.Controls.Clear();
                panelMain.BackColor = SystemColors.GradientInactiveCaption;
                subscriptionControl = new HandleSubscriptionControl(WriteToLog, serviceBusHelper, wrapper);
                subscriptionControl.SuspendDrawing();
                subscriptionControl.Location = new Point(1, panelLog.HeaderHeight + 1);
                panelMain.Controls.Add(subscriptionControl);
                SetControlSize(subscriptionControl);
                subscriptionControl.OnCancel += MainForm_OnCancel;
                subscriptionControl.OnRefresh += MainForm_OnRefresh;
                subscriptionControl.OnChangeStatus += MainForm_OnChangeStatus;
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
            finally
            {
                panelMain.ResumeDrawing();
                if (subscriptionControl != null)
                {
                    subscriptionControl.ResumeDrawing();
                }
            }
        }
Exemplo n.º 7
0
 // ReSharper disable once FunctionComplexityOverflow
 private void refreshEntity_Click(object sender, EventArgs e)
 {
     try
     {
         serviceBusTreeView.SuspendDrawing();
         serviceBusTreeView.SuspendLayout();
         serviceBusTreeView.BeginUpdate();
         var queueListNode = FindNode(QueueEntities, rootNode);
         var topicListNode = FindNode(TopicEntities, rootNode);
         var eventHubListNode = FindNode(EventHubEntities, rootNode);
         var notificationHubListNode = FindNode(NotificationHubEntities, rootNode);
         var relayServiceListNode = FindNode(RelayEntities, rootNode);
         if (serviceBusTreeView.SelectedNode != null)
         {
             // Queues
             if (serviceBusTreeView.SelectedNode == queueListNode)
             {
                 GetEntities(EntityType.Queue);
                 return;
             }
             // Topics
             if (serviceBusTreeView.SelectedNode == topicListNode)
             {
                 GetEntities(EntityType.Topic);
                 return;
             }
             // Event Hubs
             if (serviceBusTreeView.SelectedNode == eventHubListNode)
             {
                 GetEntities(EntityType.EventHub);
                 return;
             }
             // Notification Hubs
             if (serviceBusTreeView.SelectedNode == notificationHubListNode)
             {
                 GetEntities(EntityType.NotificationHub);
                 return;
             }
             // Relays
             if (serviceBusTreeView.SelectedNode == relayServiceListNode)
             {
                 GetEntities(EntityType.Relay);
                 return;
             }
             if (serviceBusTreeView.SelectedNode.Tag == null)
             {
                 return;
             }
             // Queue Node
             if (serviceBusTreeView.SelectedNode.Tag is QueueDescription)
             {
                 var queueDescription = serviceBusHelper.GetQueue(((QueueDescription)serviceBusTreeView.SelectedNode.Tag).Path);
                 if (queueDescription.Status == EntityStatus.Active)
                 {
                     serviceBusTreeView.SelectedNode.ImageIndex = QueueIconIndex;
                     serviceBusTreeView.SelectedNode.SelectedImageIndex = QueueIconIndex;
                 }
                 else
                 {
                     serviceBusTreeView.SelectedNode.ImageIndex = GreyQueueIconIndex;
                     serviceBusTreeView.SelectedNode.SelectedImageIndex = GreyQueueIconIndex;
                 }
                 serviceBusTreeView.SelectedNode.Tag = queueDescription;
                 var control = panelMain.Controls[0] as HandleQueueControl;
                 if (control != null)
                 {
                     control.RefreshData(queueDescription);
                     WriteToLog(string.Format(QueueRetrievedFormat, queueDescription.Path), false);
                 }
                 serviceBusTreeView.SelectedNode.Text = showMessageCount ?
                                                        string.Format(NameMessageCountFormat,
                                                                      serviceBusTreeView.SelectedNode.Name,
                                                                      queueDescription.MessageCountDetails.ActiveMessageCount,
                                                                      queueDescription.MessageCountDetails.DeadLetterMessageCount) :
                                                        serviceBusTreeView.SelectedNode.Name;
                 return;
             }
             // Topic Node
             if (serviceBusTreeView.SelectedNode.Tag is TopicDescription)
             {
                 var topicDescription = serviceBusHelper.GetTopic(((TopicDescription)serviceBusTreeView.SelectedNode.Tag).Path);
                 if (topicDescription.Status == EntityStatus.Active)
                 {
                     serviceBusTreeView.SelectedNode.ImageIndex = TopicIconIndex;
                     serviceBusTreeView.SelectedNode.SelectedImageIndex = TopicIconIndex;
                 }
                 else
                 {
                     serviceBusTreeView.SelectedNode.ImageIndex = GreyTopicIconIndex;
                     serviceBusTreeView.SelectedNode.SelectedImageIndex = GreyTopicIconIndex;
                 }
                 serviceBusTreeView.SelectedNode.Tag = topicDescription;
                 var control = panelMain.Controls[0] as HandleTopicControl;
                 if (control != null)
                 {
                     control.RefreshData(topicDescription);
                     WriteToLog(string.Format(TopicRetrievedFormat, topicDescription.Path), false);
                 }
                 return;
             }
             // Relay Node
             if (serviceBusTreeView.SelectedNode.Tag is RelayDescription)
             {
                 var description = (RelayDescription)serviceBusTreeView.SelectedNode.Tag;
                 if (description.IsDynamic)
                 {
                     var relayCollection = serviceBusHelper.GetRelays();
                     var relayDescriptions = relayCollection as IList<RelayDescription> ?? relayCollection.ToList();
                     if (relayDescriptions.Any())
                     {
                         var relayDescription = relayDescriptions.First(r => string.Compare(r.Path,
                                                                                            description.Path,
                                                                                            StringComparison.InvariantCultureIgnoreCase) == 0);
                         if (relayDescription != null)
                         {
                             var control = panelMain.Controls[0] as HandleRelayControl;
                             if (control != null)
                             {
                                 control.RefreshData(relayDescription);
                                 WriteToLog(string.Format(RelayRetrievedFormat, relayDescription.Path), false);
                             }
                         }
                     }
                 }
                 else
                 {
                     var relayDescription = serviceBusHelper.GetRelay(description.Path);
                     serviceBusTreeView.SelectedNode.ImageIndex = RelayLeafIconIndex;
                     serviceBusTreeView.SelectedNode.SelectedImageIndex = RelayLeafIconIndex;
                     serviceBusTreeView.SelectedNode.Tag = relayDescription;
                     var control = panelMain.Controls[0] as HandleRelayControl;
                     if (control != null)
                     {
                         control.RefreshData(relayDescription);
                         WriteToLog(string.Format(RelayRetrievedFormat, relayDescription.Path), false);
                     }
                 }
                 return;
             }
             // Partitions Node
             if (serviceBusTreeView.SelectedNode.Text == PartitionEntities)
             {
                 var isExpanded = serviceBusTreeView.SelectedNode.IsExpanded;
                 var eventHubDescription = serviceBusTreeView.SelectedNode.Tag as EventHubDescription;
                 if (eventHubDescription == null)
                 {
                     return;
                 }
                 serviceBusTreeView.SelectedNode.Nodes.Clear();
                 var parent = serviceBusTreeView.SelectedNode.Parent;
                 CreateEventHubPartitions(eventHubDescription, parent);
                 var partitionsNode = parent.Nodes.Cast<TreeNode>().First(n => n.Name == PartitionEntities);
                 if (partitionsNode == null)
                 {
                     return;
                 }
                 serviceBusTreeView.SelectedNode = partitionsNode;
                 if (isExpanded)
                 {
                     partitionsNode.Expand();
                 }
                 return;
             }
             // Consumer Groups Node
             if (serviceBusTreeView.SelectedNode.Text == ConsumerGroupEntities)
             {
                 var isExpanded = serviceBusTreeView.SelectedNode.IsExpanded;
                 var eventHubDescription = serviceBusTreeView.SelectedNode.Tag as EventHubDescription;
                 if (eventHubDescription == null)
                 {
                     return;
                 }
                 serviceBusTreeView.SelectedNode.Nodes.Clear();
                 var parent = serviceBusTreeView.SelectedNode.Parent;
                 var partitions = GetPartitionsFromPartitionIds(eventHubDescription);
                 var partitionDescriptions = partitions as IList<PartitionDescription> ?? partitions.ToList();
                 CreateEventHubConsumerGroups(eventHubDescription, parent, partitionDescriptions);
                 var consumerGroupsNode = parent.Nodes.Cast<TreeNode>().First(n => n.Name == ConsumerGroupEntities);
                 if (consumerGroupsNode == null)
                 {
                     return;
                 }
                 serviceBusTreeView.SelectedNode = consumerGroupsNode;
                 if (isExpanded)
                 {
                     consumerGroupsNode.Expand();
                 }
                 return;
             }
             // Event Hub Node
             if (serviceBusTreeView.SelectedNode.Tag is EventHubDescription)
             {
                 var eventHubDescription = serviceBusHelper.GetEventHub(((EventHubDescription)serviceBusTreeView.SelectedNode.Tag).Path);
                 if (eventHubDescription.Status == EntityStatus.Active)
                 {
                     serviceBusTreeView.SelectedNode.ImageIndex = EventHubIconIndex;
                     serviceBusTreeView.SelectedNode.SelectedImageIndex = EventHubIconIndex;
                 }
                 else
                 {
                     serviceBusTreeView.SelectedNode.ImageIndex = GreyEventHubIconIndex;
                     serviceBusTreeView.SelectedNode.SelectedImageIndex = GreyEventHubIconIndex;
                 }
                 serviceBusTreeView.SelectedNode.Tag = eventHubDescription;
                 var control = panelMain.Controls[0] as HandleEventHubControl;
                 if (control != null)
                 {
                     control.RefreshData(eventHubDescription);
                     WriteToLog(string.Format(EventHubRetrievedFormat, eventHubDescription.Path), false);
                 }
                 return;
             }
             // Partition Node
             if (serviceBusTreeView.SelectedNode.Tag is PartitionDescription)
             {
                 var partitionDescription = (PartitionDescription)serviceBusTreeView.SelectedNode.Tag;
                 var consumerGroup = serviceBusTreeView.SelectedNode.Parent.Parent.Tag as ConsumerGroupDescription;
                 var consumerGroupName = consumerGroup != null ? consumerGroup.Name : null;
                 var partition = serviceBusHelper.GetPartition(partitionDescription.EventHubPath, consumerGroupName, partitionDescription.PartitionId);
                 if (partition != null)
                 {
                     serviceBusTreeView.SelectedNode.Tag = partitionDescription;
                     var control = panelMain.Controls[0] as HandlePartitionControl;
                     if (control != null)
                     {
                         control.RefreshData(partition);
                         WriteToLog(string.Format(PartitionRetrievedFormat, partitionDescription.PartitionId, partitionDescription.EventHubPath), false);
                     }
                 }
                 return;
             }
             // Consumer Group Node
             if (serviceBusTreeView.SelectedNode.Tag is ConsumerGroupDescription)
             {
                 var consumerGroupDescription = serviceBusTreeView.SelectedNode.Tag as ConsumerGroupDescription;
                 consumerGroupDescription = serviceBusHelper.GetConsumerGroup(consumerGroupDescription.EventHubPath, consumerGroupDescription.Name);
                 serviceBusTreeView.SelectedNode.Tag = consumerGroupDescription;
                 var control = panelMain.Controls[0] as HandleConsumerGroupControl;
                 if (control != null)
                 {
                     control.RefreshData(consumerGroupDescription);
                     WriteToLog(string.Format(ConsumerGroupRetrievedFormat, consumerGroupDescription.Name, consumerGroupDescription.EventHubPath), false);
                 }
                 return;
             }
             // Notification Hub Node
             if (serviceBusTreeView.SelectedNode.Tag is NotificationHubDescription)
             {
                 var notificationHubDescription = serviceBusHelper.GetNotificationHub(((NotificationHubDescription)serviceBusTreeView.SelectedNode.Tag).Path);
                 serviceBusTreeView.SelectedNode.ImageIndex = NotificationHubIconIndex;
                 serviceBusTreeView.SelectedNode.SelectedImageIndex = NotificationHubIconIndex;
                 serviceBusTreeView.SelectedNode.Tag = notificationHubDescription;
                 var control = panelMain.Controls[0] as HandleNotificationHubControl;
                 if (control != null)
                 {
                     control.RefreshData(notificationHubDescription);
                     WriteToLog(string.Format(NotificationHubRetrievedFormat, notificationHubDescription.Path), false);
                 }
                 return;
             }
             // Subscriptions Node
             if (serviceBusTreeView.SelectedNode.Text == SubscriptionEntities ||
                 serviceBusTreeView.SelectedNode.Text == FilteredSubscriptionEntities)
             {
                 var wrapper = serviceBusTreeView.SelectedNode.Tag as SubscriptionWrapper;
                 if (wrapper == null)
                 {
                     return;
                 }
                 var subscriptions = serviceBusHelper.GetSubscriptions(wrapper.TopicDescription, wrapper.Filter);
                 var subscriptionDescriptions = subscriptions as IList<SubscriptionDescription> ?? subscriptions.ToList();
                 if ((subscriptions != null &&
                     subscriptionDescriptions.Any()) ||
                     !string.IsNullOrWhiteSpace(wrapper.Filter))
                 {
                     var subscriptionsNode = serviceBusTreeView.SelectedNode;
                     subscriptionsNode.Text = string.IsNullOrWhiteSpace(wrapper.Filter) ?
                                                          SubscriptionEntities :
                                                          FilteredSubscriptionEntities;
                     subscriptionsNode.Nodes.Clear();
                     foreach (var subscription in subscriptionDescriptions)
                     {
                         var subscriptionNode = subscriptionsNode.Nodes.Add(subscription.Name,
                                                                            showMessageCount ?
                                                                            string.Format(NameMessageCountFormat,
                                                                                          subscription.Name,
                                                                                          subscription.MessageCountDetails.ActiveMessageCount,
                                                                                          subscription.MessageCountDetails.DeadLetterMessageCount) :
                                                                            subscription.Name,
                                                                            subscription.Status == EntityStatus.Active ? SubscriptionIconIndex : GreySubscriptionIconIndex,
                                                                            subscription.Status == EntityStatus.Active ? SubscriptionIconIndex : GreySubscriptionIconIndex);
                         subscriptionNode.ContextMenuStrip = subscriptionContextMenuStrip;
                         subscriptionNode.Tag = new SubscriptionWrapper(subscription, wrapper.TopicDescription);
                         WriteToLog(string.Format(CultureInfo.CurrentCulture, SubscriptionRetrievedFormat, subscription.Name, wrapper.TopicDescription.Path), false);
                         var rules = serviceBusHelper.GetRules(subscription);
                         var ruleDescriptions = rules as RuleDescription[] ?? rules.ToArray();
                         if (rules != null &&
                             ruleDescriptions.Any())
                         {
                             subscriptionNode.Nodes.Clear();
                             var rulesNode = subscriptionNode.Nodes.Add(RuleEntities, RuleEntities, RuleListIconIndex, RuleListIconIndex);
                             rulesNode.ContextMenuStrip = rulesContextMenuStrip;
                             rulesNode.Tag = new RuleWrapper(null, subscription);
                             foreach (var rule in ruleDescriptions)
                             {
                                 var ruleNode = rulesNode.Nodes.Add(rule.Name, rule.Name, RuleIconIndex, RuleIconIndex);
                                 ruleNode.ContextMenuStrip = ruleContextMenuStrip;
                                 ruleNode.Tag = new RuleWrapper(rule, subscription);
                                 WriteToLog(string.Format(CultureInfo.CurrentCulture, RuleRetrievedFormat, rule.Name, subscription.Name, wrapper.TopicDescription.Path), false);
                             }
                         }
                     }
                 }
                 return;
             }
             // Rules Node
             if (serviceBusTreeView.SelectedNode.Text == RuleEntities)
             {
                 var wrapper = serviceBusTreeView.SelectedNode.Tag as RuleWrapper;
                 if (wrapper == null)
                 {
                     return;
                 }
                 var rules = serviceBusHelper.GetRules(wrapper.SubscriptionDescription);
                 var ruleDescriptions = rules as RuleDescription[] ?? rules.ToArray();
                 if (rules != null &&
                     ruleDescriptions.Any())
                 {
                     var rulesNode = serviceBusTreeView.SelectedNode;
                     rulesNode.Nodes.Clear();
                     foreach (var rule in ruleDescriptions)
                     {
                         var ruleNode = rulesNode.Nodes.Add(rule.Name, rule.Name, RuleIconIndex, RuleIconIndex);
                         ruleNode.ContextMenuStrip = ruleContextMenuStrip;
                         ruleNode.Tag = new RuleWrapper(rule, wrapper.SubscriptionDescription);
                         WriteToLog(string.Format(CultureInfo.CurrentCulture, RuleRetrievedFormat, rule.Name, wrapper.SubscriptionDescription.Name, wrapper.SubscriptionDescription.TopicPath), false);
                     }
                 }
                 return;
             }
             // Subscription Node
             if (serviceBusTreeView.SelectedNode.Tag is SubscriptionWrapper)
             {
                 var wrapper = serviceBusTreeView.SelectedNode.Tag as SubscriptionWrapper;
                 var subscriptionDescription = serviceBusHelper.GetSubscription(wrapper.SubscriptionDescription.TopicPath,
                                                                                wrapper.SubscriptionDescription.Name);
                 wrapper = new SubscriptionWrapper(subscriptionDescription, wrapper.TopicDescription);
                 if (subscriptionDescription.Status == EntityStatus.Active)
                 {
                     serviceBusTreeView.SelectedNode.ImageIndex = SubscriptionIconIndex;
                     serviceBusTreeView.SelectedNode.SelectedImageIndex = SubscriptionIconIndex;
                 }
                 else
                 {
                     serviceBusTreeView.SelectedNode.ImageIndex = GreySubscriptionIconIndex;
                     serviceBusTreeView.SelectedNode.SelectedImageIndex = GreySubscriptionIconIndex;
                 }
                 serviceBusTreeView.SelectedNode.Tag = wrapper;
                 var control = panelMain.Controls[0] as HandleSubscriptionControl;
                 if (control != null)
                 {
                     control.RefreshData(wrapper);
                     WriteToLog(string.Format(SubscriptionRetrievedFormat,
                                              wrapper.SubscriptionDescription.Name,
                                              wrapper.SubscriptionDescription.TopicPath),
                                false);
                 }
                 serviceBusTreeView.SelectedNode.Text = showMessageCount ?
                                                        string.Format(NameMessageCountFormat,
                                                                      serviceBusTreeView.SelectedNode.Name,
                                                                      subscriptionDescription.MessageCountDetails.ActiveMessageCount,
                                                                      subscriptionDescription.MessageCountDetails.DeadLetterMessageCount) :
                                                        serviceBusTreeView.SelectedNode.Name;
             }
         }
     }
     catch (Exception ex)
     {
         HandleException(ex);
     }
     finally
     {
         serviceBusTreeView.ResumeDrawing();
         serviceBusTreeView.ResumeLayout();
         serviceBusTreeView.EndUpdate();
     }
 }
 public void RefreshData(SubscriptionWrapper wrapper)
 {
     try
     {
         subscriptionWrapper = wrapper;
         InitializeData();
     }
     catch (Exception ex)
     {
         HandleException(ex);
     }
 }
 public HandleSubscriptionControl(WriteToLogDelegate writeToLog, ServiceBusHelper serviceBusHelper, SubscriptionWrapper subscriptionWrapper)
 {
     this.writeToLog = writeToLog;
     this.serviceBusHelper = serviceBusHelper;
     this.subscriptionWrapper = subscriptionWrapper;
     dataPointBindingList = new BindingList<MetricDataPoint>
     {
         AllowNew = true,
         AllowEdit = true,
         AllowRemove = true
     };
     InitializeComponent();
     InitializeControls();
 } 
Exemplo n.º 10
0
        public ContainerForm(ServiceBusHelper serviceBusHelper, MainForm mainForm, FormTypeEnum formType, SubscriptionWrapper subscriptionWrapper)
        {
            try
            {
                InitializeComponent();
                Task.Factory.StartNew(AsyncWriteToLog).ContinueWith(t =>
                {
                    if (t.IsFaulted && t.Exception != null)
                    {
                        WriteToLog(t.Exception.Message);
                    }
                });
                this.mainForm        = mainForm;
                mainSplitterDistance = mainSplitContainer.SplitterDistance;
                SuspendLayout();
                panelMain.SuspendDrawing();
                panelMain.Controls.Clear();
                panelMain.BackColor = SystemColors.GradientInactiveCaption;

                if (formType == FormTypeEnum.Listener)
                {
                    var listenerControl = new ListenerControl(WriteToLog, StopAndRestartLog, new ServiceBusHelper(WriteToLog, serviceBusHelper), subscriptionWrapper.SubscriptionDescription)
                    {
                        Location = new Point(1, panelMain.HeaderHeight + 1),
                        Size     = new Size(panelMain.Size.Width - 3, subscriptionWrapper.SubscriptionDescription.RequiresSession ? 544 : 520),
                        Anchor   = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right
                    };
                    listenerControl.Focus();

                    Text = string.Format(SubscriptionListenerFormat, subscriptionWrapper.SubscriptionDescription.Name);
                    mainSplitContainer.SplitterDistance = subscriptionWrapper.SubscriptionDescription.RequiresSession ? 570 : listenerControl.Size.Height + 26;
                    panelMain.HeaderText = string.Format(HeaderTextSubscriptionListenerFormat, subscriptionWrapper.SubscriptionDescription.Name);
                    panelMain.Controls.Add(listenerControl);
                }
                else
                {
                    testSubscriptionControl = new TestSubscriptionControl(mainForm, WriteToLog, StopAndRestartLog, new ServiceBusHelper(WriteToLog, serviceBusHelper), subscriptionWrapper)
                    {
                        Location = new Point(1, panelMain.HeaderHeight + 1),
                        Size     = new Size(panelMain.Size.Width - 3, panelMain.Size.Height - 26),
                        Anchor   = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right
                    };

                    testSubscriptionControl.btnCancel.Click -= testSubscriptionControl.btnCancel_Click;
                    testSubscriptionControl.btnCancel.Click += BtnCancelOnClick;
                    testSubscriptionControl.Focus();

                    Text = string.Format(TestSubscriptionFormat, subscriptionWrapper.SubscriptionDescription.Name);

                    panelMain.HeaderText = string.Format(HeaderTextTestSubscriptionFormat, subscriptionWrapper.SubscriptionDescription.Name);
                    panelMain.Controls.Add(testSubscriptionControl);
                }
                SetStyle(ControlStyles.ResizeRedraw, true);
            }
            finally
            {
                panelMain.ResumeDrawing();
                ResumeLayout();
            }
        }
 public TestSubscriptionControl(MainForm mainForm,
                                WriteToLogDelegate writeToLog,
                                Action stopAndRestartLog,
                                ServiceBusHelper serviceBusHelper, 
                                SubscriptionWrapper subscriptionWrapper)
 {
     this.mainForm = mainForm;
     this.writeToLog = writeToLog;
     this.stopAndRestartLog = stopAndRestartLog;
     this.serviceBusHelper = serviceBusHelper;
     this.subscriptionWrapper = subscriptionWrapper;
     InitializeComponent();
     InitializeControls();
 }