private PartitionDescription CreatePartitionDescription(string partitionId)
        {
            // We're using reflection to construct an instance of the this time.
            // It is part of the Event Hub (Service Bus) SDK, and we're not able 
            // manipulate it directly.
            // At runtime, the instance will be supplied by the SDK itself.
            var map = new Dictionary<string, object>
            {
                {"InternalEndSequenceNumber", _sequenceNumberOfMostRecentEvent},
                {"InternalLastEnqueuedTimeUtc", _lastEnqueuedTimeUtc},
                {"InternalLastEnqueuedOffset", _lastEnqueuedOffset },
                {"InternalIncomingBytesPerSecond", _incomingByteRate },
                {"InternalOutgoingBytesPerSecond", _outgoingByteRate }
            };

            var p = new PartitionDescription("myhub", partitionId);

            var type = typeof (PartitionDescription);
            foreach (var pair in map)
            {
                var property = type.GetProperty(pair.Key, BindingFlags.Instance | BindingFlags.NonPublic);
                property.SetValue(p, pair.Value);
            }

            return p;
        }
        private static void AllocatePartition(int commandTopics, int commandSubscriptions,
                                              string partitionArea, string serviceNamespace, string eventStore,
                                              string serviceOwner, string serviceOwnerSecret, string storageWriterConnection,
                                              string acsManagementServiceName, string acsManagementServiceSecret)
        {
            PartitionDescription pd;

            using (var iot = new InternetOfThings(commandTopics, commandSubscriptions))
            {
                pd = new PartitionDescription(DateTime.UtcNow.ToLongDateString(),
                                              partitionArea,
                                              serviceNamespace,
                                              eventStore)
                {
                    Owner               = serviceOwner,
                    OwnerSecret         = serviceOwnerSecret,
                    StorageAccount      = storageWriterConnection,
                    AccessControl       = acsManagementServiceName,
                    AccessControlSecret = acsManagementServiceSecret
                };

                pd = iot.CreatePartition(pd);
                iot.ActivatePartition(pd);
            }
        }
Exemple #3
0
        private PartitionDescription CreatePartitionDescription(string partitionId)
        {
            // We're using reflection to construct an instance of the this time.
            // It is part of the Event Hub (Service Bus) SDK, and we're not able
            // manipulate it directly.
            // At runtime, the instance will be supplied by the SDK itself.
            var map = new Dictionary <string, object>
            {
                { "InternalEndSequenceNumber", _sequenceNumberOfMostRecentEvent },
                { "InternalLastEnqueuedTimeUtc", _lastEnqueuedTimeUtc },
                { "InternalLastEnqueuedOffset", _lastEnqueuedOffset },
                { "InternalIncomingBytesPerSecond", _incomingByteRate },
                { "InternalOutgoingBytesPerSecond", _outgoingByteRate }
            };

            var p = new PartitionDescription("myhub", partitionId);

            var type = typeof(PartitionDescription);

            foreach (var pair in map)
            {
                var property = type.GetProperty(pair.Key, BindingFlags.Instance | BindingFlags.NonPublic);
                property.SetValue(p, pair.Value);
            }

            return(p);
        }
 public HandlePartitionControl(WriteToLogDelegate writeToLog, ServiceBusHelper serviceBusHelper, PartitionDescription partitionDescription)
 {
     this.writeToLog           = writeToLog;
     this.serviceBusHelper     = serviceBusHelper;
     this.partitionDescription = partitionDescription;
     InitializeComponent();
     InitializeData();
 }
 public HandlePartitionControl(WriteToLogDelegate writeToLog, ServiceBusHelper serviceBusHelper, PartitionDescription partitionDescription)
 {
     this.writeToLog = writeToLog;
     this.serviceBusHelper = serviceBusHelper;
     this.partitionDescription = partitionDescription;
     InitializeComponent();
     InitializeData();
 } 
 public void RefreshData(PartitionDescription partition)
 {
     try
     {
         partitionDescription = partition;
         InitializeData();
     }
     catch (Exception ex)
     {
         HandleException(ex);
     }
 }
  public void RefreshData(PartitionDescription partition)
 {
     try
     {
         partitionDescription = partition;
         InitializeData();
     }
     catch (Exception ex)
     {
         HandleException(ex);
     }
 }
Exemple #8
0
        public void TestParition()
        {
            string              name = "testpartitionEventHub";
            string              consumerGroupName = "consumergroup1";
            NamespaceManager    ns          = NamespaceManager.CreateFromConnectionString(eventHubConnectionString);
            EventHubDescription description = ns.CreateEventHub(name);

            Assert.IsTrue(null != description);
            ConsumerGroupDescription cgDescription = ns.CreateConsumerGroup(name, consumerGroupName);
            PartitionDescription     pd            = ns.GetEventHubPartition(name, consumerGroupName, "1");

            Assert.IsTrue(null != pd);

            ns.DeleteEventHub(name);
        }
        public ContainerForm(ServiceBusHelper serviceBusHelper, MainForm mainForm, EventHubDescription eventHubDescription, PartitionDescription partitionDescription = null)
        {
            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;

                testEventHubControl = new TestEventHubControl(mainForm, WriteToLog, StopLog, StartLog, new ServiceBusHelper(WriteToLog, serviceBusHelper), eventHubDescription, partitionDescription)
                {
                    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
                };

                Text = partitionDescription == null
                    ? string.Format(SendEventsToEventHubFormat, eventHubDescription.Path)
                    : string.Format(SendEventsToEventHubPartitionFormat,
                        partitionDescription.PartitionId,
                        eventHubDescription.Path);

                testEventHubControl.btnCancel.Text = CloseLabel;
                testEventHubControl.btnCancel.Click -= testEventHubControl.btnCancel_Click;
                testEventHubControl.btnCancel.Click += BtnCancelOnClick;
                testEventHubControl.Focus();

                panelMain.HeaderText = partitionDescription == null ?
                                       string.Format(HeaderTextTestEventHubFormat, eventHubDescription.Path) :
                                       string.Format(HeaderTextTestEventHubPartitionFormat, 
                                                     partitionDescription.PartitionId, 
                                                     eventHubDescription.Path);

                panelMain.Controls.Add(testEventHubControl);
                SetStyle(ControlStyles.ResizeRedraw, true);
            }
            finally
            {
                panelMain.ResumeDrawing();
                ResumeLayout();
            }
        }
 /// <summary>
 /// Retrieves a partition.
 /// </summary>
 /// <param name="partitionDescription">A PartitionDescription object.</param>
 /// <returns>Returns an IEnumerable<SubscriptionDescription/> collection of partitions attached to the event hub passed as a parameter.</returns>
 public PartitionDescription GetPartition(PartitionDescription partitionDescription)
 {
     if (partitionDescription == null)
     {
         throw new ArgumentException(PartitionDescriptionCannotBeNull);
     }
     if (namespaceManager != null)
     {
         return RetryHelper.RetryFunc(() => namespaceManager.GetEventHubPartition(partitionDescription.EventHubPath, partitionDescription.PartitionId), writeToLog);
     }
     throw new ApplicationException(ServiceBusIsDisconnected);
 }
        private void ShowPartition(PartitionDescription partition)
        {
            HandlePartitionControl partitionControl = null;

            try
            {
                panelMain.SuspendDrawing();
                foreach (var userControl in panelMain.Controls.OfType<UserControl>())
                {
                    userControl.Dispose();
                }
                panelMain.Controls.Clear();
                panelMain.BackColor = SystemColors.GradientInactiveCaption;

                if (string.IsNullOrWhiteSpace(partition.LastEnqueuedOffset))
                {
                    var consumerGroup = serviceBusTreeView.SelectedNode.Parent.Parent.Tag as ConsumerGroupDescription;
                    var consumerGroupName = consumerGroup != null ? consumerGroup.Name : null;
                    partition = serviceBusHelper.GetPartition(partition.EventHubPath,
                                                              consumerGroupName,
                                                              partition.PartitionId);
                }
                partitionControl = new HandlePartitionControl(WriteToLog, serviceBusHelper, partition);
                partitionControl.SuspendDrawing();
                partitionControl.Location = new Point(1, panelLog.HeaderHeight + 1);
                panelMain.Controls.Add(partitionControl);
                partitionControl.OnRefresh += MainForm_OnRefresh;
                SetControlSize(partitionControl);
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
            finally
            {
                panelMain.ResumeDrawing();
                if (partitionControl != null)
                {
                    partitionControl.ResumeDrawing();
                }
            }
        }
 private void CreateEventHubPartitionNode(PartitionDescription partition, TreeNode partitionsNode)
 {
     int value;
     var partitionId = int.TryParse(partition.PartitionId, out value)
                       ? string.Format(PartitionFormat, value)
                       : partition.PartitionId;
     var partitionNode = partitionsNode.Nodes.Add(partition.PartitionId,
                                                  partitionId,
                                                  PartitionIconIndex,
                                                  PartitionIconIndex);
     partitionNode.ContextMenuStrip = partitionContextMenuStrip;
     partitionNode.Tag = partition;
 }
        public ContainerForm(ServiceBusHelper serviceBusHelper, MainForm mainForm, EventHubDescription eventHubDescription, PartitionDescription partitionDescription = null)
        {
            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;

                testEventHubControl = new TestEventHubControl(mainForm, WriteToLog, StopLog, StartLog, new ServiceBusHelper(WriteToLog, serviceBusHelper), eventHubDescription, partitionDescription)
                {
                    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
                };

                Text = partitionDescription == null
                    ? string.Format(SendEventsToEventHubFormat, eventHubDescription.Path)
                    : string.Format(SendEventsToEventHubPartitionFormat,
                                    partitionDescription.PartitionId,
                                    eventHubDescription.Path);

                testEventHubControl.btnCancel.Text   = CloseLabel;
                testEventHubControl.btnCancel.Click -= testEventHubControl.btnCancel_Click;
                testEventHubControl.btnCancel.Click += BtnCancelOnClick;
                testEventHubControl.Focus();

                panelMain.HeaderText = partitionDescription == null?
                                       string.Format(HeaderTextTestEventHubFormat, eventHubDescription.Path) :
                                           string.Format(HeaderTextTestEventHubPartitionFormat,
                                                         partitionDescription.PartitionId,
                                                         eventHubDescription.Path);

                panelMain.Controls.Add(testEventHubControl);
                SetStyle(ControlStyles.ResizeRedraw, true);
            }
            finally
            {
                panelMain.ResumeDrawing();
                ResumeLayout();
            }
        }
        private void ShowPartition(PartitionDescription partition)
        {
            HandlePartitionControl partitionControl = null;

            try
            {
                panelMain.SuspendDrawing();
                foreach (var userControl in panelMain.Controls.OfType<UserControl>())
                {
                    userControl.Dispose();
                }
                panelMain.Controls.Clear();
                panelMain.BackColor = SystemColors.GradientInactiveCaption;
                partitionControl = new HandlePartitionControl(WriteToLog, serviceBusHelper, partition);
                partitionControl.SuspendDrawing();
                partitionControl.Location = new Point(1, panelLog.HeaderHeight + 1);
                panelMain.Controls.Add(partitionControl);
                partitionControl.OnRefresh += MainForm_OnRefresh;
                SetControlSize(partitionControl);
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
            finally
            {
                panelMain.ResumeDrawing();
                if (partitionControl != null)
                {
                    partitionControl.ResumeDrawing();
                }
            }
        }
 public TestEventHubControl(MainForm mainForm,
                            WriteToLogDelegate writeToLog,
                            Func<Task> stopLog,
                            Action startLog,
                            ServiceBusHelper serviceBusHelper,
                            EventHubDescription eventHubDescription,
                            PartitionDescription partitionDescription)
 {
     this.mainForm = mainForm;
     this.writeToLog = writeToLog;
     this.stopLog = stopLog;
     this.startLog = startLog;
     this.serviceBusHelper = serviceBusHelper;
     this.eventHubDescription = eventHubDescription;
     this.partitionDescription = partitionDescription;
     InitializeComponent();
     InitializeControls();
 }