// ReSharper disable once FunctionComplexityOverflow private void btnCancelUpdate_Click(object sender, EventArgs e) { if (btnCancelUpdate.Text == CancelText) { if (OnCancel != null) { OnCancel(); } } else { try { relayDescription.UserMetadata = txtUserMetadata.Text; var bindingList = authorizationRulesBindingSource.DataSource as BindingList <AuthorizationRuleWrapper>; if (bindingList != null) { for (var i = 0; i < bindingList.Count; i++) { var rule = bindingList[i]; if (serviceBusHelper.IsCloudNamespace) { if (string.IsNullOrWhiteSpace(rule.KeyName)) { writeToLog(string.Format(KeyNameCannotBeNull, i)); continue; } } var rightList = new List <AccessRights>(); if (rule.Manage) { rightList.AddRange(new[] { AccessRights.Manage, AccessRights.Send, AccessRights.Listen }); } else { if (rule.Send) { rightList.Add(AccessRights.Send); } if (rule.Listen) { rightList.Add(AccessRights.Listen); } } if (serviceBusHelper.IsCloudNamespace) { if (string.IsNullOrWhiteSpace(rule.PrimaryKey) && string.IsNullOrWhiteSpace(rule.SecondaryKey)) { relayDescription.Authorization.Add(new SharedAccessAuthorizationRule(rule.KeyName, rightList)); } else if (string.IsNullOrWhiteSpace(rule.SecondaryKey)) { relayDescription.Authorization.Add(new SharedAccessAuthorizationRule(rule.KeyName, rule.PrimaryKey ?? SharedAccessAuthorizationRule.GenerateRandomKey(), rightList)); } else { relayDescription.Authorization.Add(new SharedAccessAuthorizationRule(rule.KeyName, rule.PrimaryKey ?? SharedAccessAuthorizationRule.GenerateRandomKey(), rule.SecondaryKey ?? SharedAccessAuthorizationRule.GenerateRandomKey(), rightList)); } } else { relayDescription.Authorization.Add(new AllowRule(rule.IssuerName, rule.ClaimType, rule.ClaimValue, rightList)); } } } relayDescription = serviceBusHelper.UpdateRelay(relayDescription); } catch (Exception ex) { HandleException(ex); relayDescription = serviceBusHelper.GetRelay(relayDescription.Path); } finally { InitializeControls(); } } }