public void StartSettingsWath() { _serviceBusHelper.CreateSubscription(_subscriptionName); _client = _serviceBusHelper.GetSubscriptionClient(_subscriptionName); _client.OnMessage(message => { var newSettings = message.GetBody <Settings>(); UpdateConfig(newSettings); MessageBox.Show($@"New part size: {newSettings.PartSize}"); message.Complete(); }); }
/// <summary> /// Creates the subscriptions which xml definition is contained in the collection passed as a parameter. /// </summary> /// <param name="serviceBusHelper">A ServiceBusHelper object.</param> /// <param name="topicDescription">A description of the topic to which to add the subscription.</param> /// <param name="subscriptions">The IEnumerable<XElement/> collection containing the xml definition of the subscriptions to create.</param> private static void CreateSubscriptions(ServiceBusHelper serviceBusHelper, TopicDescription topicDescription, IEnumerable <XElement> subscriptions) { try { if (serviceBusHelper == null || subscriptions == null) { return; } var fullName = typeof(SubscriptionDescription).FullName; if (string.IsNullOrEmpty(fullName) || !propertyCache.ContainsKey(fullName)) { return; } var propertyDictionary = propertyCache[fullName]; var ruleName = string.Format(NodeNameFormat, Namespace, RuleEntity); var rulesName = string.Format(NodeNameFormat, Namespace, RuleEntityList); foreach (var subscription in subscriptions) { var propertyValue = new Dictionary <string, object>(); var properties = subscription.Elements(); IEnumerable <XElement> rules = null; foreach (var property in properties) { if (property.Name == rulesName) { rules = property.Descendants(ruleName); } else { var xmlReader = property.CreateReader(); GetPropertyValue(propertyDictionary, propertyValue, xmlReader); } } if (propertyValue.ContainsKey(Name) && propertyValue.ContainsKey(TopicPath)) { RuleDescription defaultRuleDescription = null; IEnumerable <RuleDescription> nonDefaultRuleDescriptions = null; var ruleDescriptions = CreateRules(serviceBusHelper, rules); if (ruleDescriptions != null) { defaultRuleDescription = ruleDescriptions.FirstOrDefault(r => r.Name == RuleDescription.DefaultRuleName); nonDefaultRuleDescriptions = ruleDescriptions.Where(r => r.Name != RuleDescription.DefaultRuleName); } var subscriptionDescription = new SubscriptionDescription(propertyValue[TopicPath] as string, propertyValue[Name] as string); SetPropertyValue(propertyDictionary, propertyValue, subscriptionDescription); if (defaultRuleDescription != null) { serviceBusHelper.CreateSubscription(topicDescription, subscriptionDescription, defaultRuleDescription); } else { serviceBusHelper.CreateSubscription(topicDescription, subscriptionDescription); } if (nonDefaultRuleDescriptions != null) { foreach (var ruleDescription in nonDefaultRuleDescriptions) { serviceBusHelper.AddRule(subscriptionDescription, ruleDescription); } } } } } catch (Exception ex) { HandleException(ex); } }
public void CreateTest() { var helper = new ServiceBusHelper(); helper.CreateSubscription("testsubscription"); }
private void btnCreateDelete_Click(object sender, EventArgs e) { try { if (serviceBusHelper == null || wrapper == null || wrapper.TopicDescription == null) { return; } if (btnCreateDelete.Text == DeleteText && wrapper.SubscriptionDescription != null && !string.IsNullOrEmpty(wrapper.SubscriptionDescription.Name)) { var deleteForm = new DeleteForm(wrapper.SubscriptionDescription.Name, SubscriptionEntity.ToLower()); if (deleteForm.ShowDialog() == DialogResult.OK) { serviceBusHelper.DeleteSubscription(wrapper.SubscriptionDescription); } return; } if (btnCreateDelete.Text == CreateText) { if (string.IsNullOrEmpty(txtName.Text)) { writeToLog(NameCannotBeNull); return; } var subscriptionDescription = new SubscriptionDescription(wrapper.TopicDescription.Path, txtName.Text) { UserMetadata = txtUserMetadata.Text, ForwardTo = txtForwardTo.Text }; if (!string.IsNullOrEmpty(txtMaxDeliveryCount.Text)) { int value; if (int.TryParse(txtMaxDeliveryCount.Text, out value)) { subscriptionDescription.MaxDeliveryCount = value; } else { writeToLog(MaxDeliveryCountMustBeANumber); return; } } var days = 0; var hours = 0; var minutes = 0; var seconds = 0; var milliseconds = 0; if (!string.IsNullOrEmpty(txtDefaultMessageTimeToLiveDays.Text) || !string.IsNullOrEmpty(txtDefaultMessageTimeToLiveHours.Text) || !string.IsNullOrEmpty(txtDefaultMessageTimeToLiveMinutes.Text) || !string.IsNullOrEmpty(txtDefaultMessageTimeToLiveSeconds.Text) || !string.IsNullOrEmpty(txtDefaultMessageTimeToLiveMilliseconds.Text)) { if (!string.IsNullOrEmpty(txtDefaultMessageTimeToLiveDays.Text)) { if (!int.TryParse(txtDefaultMessageTimeToLiveDays.Text, out days)) { writeToLog(DefaultMessageTimeToLiveDaysMustBeANumber); return; } } if (!string.IsNullOrEmpty(txtDefaultMessageTimeToLiveHours.Text)) { if (!int.TryParse(txtDefaultMessageTimeToLiveHours.Text, out hours)) { writeToLog(DefaultMessageTimeToLiveHoursMustBeANumber); return; } } if (!string.IsNullOrEmpty(txtDefaultMessageTimeToLiveMinutes.Text)) { if (!int.TryParse(txtDefaultMessageTimeToLiveMinutes.Text, out minutes)) { writeToLog(DefaultMessageTimeToLiveMinutesMustBeANumber); return; } } if (!string.IsNullOrEmpty(txtDefaultMessageTimeToLiveSeconds.Text)) { if (!int.TryParse(txtDefaultMessageTimeToLiveSeconds.Text, out seconds)) { writeToLog(DefaultMessageTimeToLiveSecondsMustBeANumber); return; } } if (!string.IsNullOrEmpty(txtDefaultMessageTimeToLiveMilliseconds.Text)) { if (!int.TryParse(txtDefaultMessageTimeToLiveMilliseconds.Text, out milliseconds)) { writeToLog(DefaultMessageTimeToLiveMillisecondsMustBeANumber); return; } } subscriptionDescription.DefaultMessageTimeToLive = new TimeSpan(days, hours, minutes, seconds, milliseconds); } days = 0; hours = 0; minutes = 0; seconds = 0; milliseconds = 0; if (!string.IsNullOrEmpty(txtLockDurationDays.Text) || !string.IsNullOrEmpty(txtLockDurationHours.Text) || !string.IsNullOrEmpty(txtLockDurationMinutes.Text) || !string.IsNullOrEmpty(txtLockDurationSeconds.Text) || !string.IsNullOrEmpty(txtLockDurationMilliseconds.Text)) { if (!string.IsNullOrEmpty(txtLockDurationDays.Text)) { if (!int.TryParse(txtLockDurationDays.Text, out days)) { writeToLog(LockDurationDaysMustBeANumber); return; } } if (!string.IsNullOrEmpty(txtLockDurationHours.Text)) { if (!int.TryParse(txtLockDurationHours.Text, out hours)) { writeToLog(LockDurationHoursMustBeANumber); return; } } if (!string.IsNullOrEmpty(txtLockDurationMinutes.Text)) { if (!int.TryParse(txtLockDurationMinutes.Text, out minutes)) { writeToLog(LockDurationMinutesMustBeANumber); return; } } if (!string.IsNullOrEmpty(txtLockDurationSeconds.Text)) { if (!int.TryParse(txtLockDurationSeconds.Text, out seconds)) { writeToLog(LockDurationSecondsMustBeANumber); return; } } if (!string.IsNullOrEmpty(txtLockDurationMilliseconds.Text)) { if (!int.TryParse(txtLockDurationMilliseconds.Text, out milliseconds)) { writeToLog(LockDurationMillisecondsMustBeANumber); return; } } subscriptionDescription.LockDuration = new TimeSpan(days, hours, minutes, seconds, milliseconds); } subscriptionDescription.EnableBatchedOperations = checkedListBox.GetItemChecked(EnableBatchedOperationsIndex); subscriptionDescription.EnableDeadLetteringOnFilterEvaluationExceptions = checkedListBox.GetItemChecked(EnableDeadLetteringOnFilterEvaluationExceptionsIndex); subscriptionDescription.EnableDeadLetteringOnMessageExpiration = checkedListBox.GetItemChecked(EnableDeadLetteringOnMessageExpirationIndex); subscriptionDescription.RequiresSession = checkedListBox.GetItemChecked(RequiresSessionIndex); var ruleDescription = new RuleDescription(); if (!string.IsNullOrEmpty(txtFilter.Text)) { ruleDescription.Filter = new SqlFilter(txtFilter.Text); } if (!string.IsNullOrEmpty(txtAction.Text)) { ruleDescription.Action = new SqlRuleAction(txtAction.Text); } wrapper.SubscriptionDescription = serviceBusHelper.CreateSubscription(wrapper.TopicDescription, subscriptionDescription, ruleDescription); InitializeData(); } } catch (Exception ex) { HandleException(ex); } }