public void Validate() { TimeSpan timeSpan; int num; int num1; if (string.IsNullOrWhiteSpace(this.connectionProperties["Endpoint"])) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigMissingSetting("Endpoint", "Microsoft.ServiceBus.ConnectionString")); } bool flag = !string.IsNullOrWhiteSpace(this.connectionProperties["SharedSecretIssuer"]); bool flag1 = !string.IsNullOrWhiteSpace(this.connectionProperties["SharedSecretValue"]); if (flag && !flag1) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigMissingSetting("SharedSecretValue", "Microsoft.ServiceBus.ConnectionString")); } if (!flag && flag1) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigMissingSetting("SharedSecretIssuer", "Microsoft.ServiceBus.ConnectionString")); } bool flag2 = !string.IsNullOrWhiteSpace(this.connectionProperties["WindowsUsername"]); bool flag3 = !string.IsNullOrWhiteSpace(this.connectionProperties["WindowsPassword"]); if ((!flag2 || !flag3) && (flag2 || flag3)) { CultureInfo currentCulture = CultureInfo.CurrentCulture; object[] objArray = new object[] { "WindowsUsername", "WindowsPassword" }; string str = string.Format(currentCulture, "{0},{1}", objArray); throw new ConfigurationErrorsException(SRClient.AppSettingsConfigIncompleteSettingCombination("Microsoft.ServiceBus.ConnectionString", str)); } bool flag4 = !string.IsNullOrWhiteSpace(this.connectionProperties["OAuthUsername"]); bool flag5 = !string.IsNullOrWhiteSpace(this.connectionProperties["OAuthPassword"]); if ((!flag4 || !flag5) && (flag4 || flag5)) { CultureInfo cultureInfo = CultureInfo.CurrentCulture; object[] objArray1 = new object[] { "OAuthUsername", "OAuthPassword" }; string str1 = string.Format(cultureInfo, "{0},{1}", objArray1); throw new ConfigurationErrorsException(SRClient.AppSettingsConfigIncompleteSettingCombination("Microsoft.ServiceBus.ConnectionString", str1)); } string item = this.connectionProperties["OperationTimeout"]; if (!string.IsNullOrWhiteSpace(item) && !TimeSpan.TryParse(item, CultureInfo.CurrentCulture, out timeSpan)) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigSettingInvalidValue("OperationTimeout", item)); } string item1 = this.connectionProperties["RuntimePort"]; if (!string.IsNullOrWhiteSpace(item1) && !int.TryParse(item1, out num)) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigSettingInvalidValue("RuntimePort", item1)); } string item2 = this.connectionProperties["ManagementPort"]; if (!string.IsNullOrWhiteSpace(item2) && !int.TryParse(item2, out num1)) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigSettingInvalidValue("ManagementPort", item2)); } }
private static NameValueCollection CreateNameValueCollectionFromConnectionString(string connectionString) { var settings = new NameValueCollection(); if (!string.IsNullOrWhiteSpace(connectionString)) { var connection = KeyValueConfigurationManager.KeyDelimiter + connectionString; var keyValues = Regex.Split(connection, KeyValueConfigurationManager.KeyDelimiterRegexString, RegexOptions.IgnoreCase); if (keyValues.Length > 0) { // Regex.Split returns the array that include part of the delimiters, so it will look // something like this: // { "", "Endpoint", "sb://a.b.c", "OperationTimeout", "01:20:30", ...} // We should always get empty string for first element (except if we found no match at all). if (!string.IsNullOrWhiteSpace(keyValues[0])) { throw new ConfigurationException(SRClient.AppSettingsConfigSettingInvalidKey(connectionString)); } if (keyValues.Length % 2 != 1) { throw new ConfigurationException(SRClient.AppSettingsConfigSettingInvalidKey(connectionString)); } for (var i = 1; i < keyValues.Length; i++) { var key = keyValues[i]; if (string.IsNullOrWhiteSpace(key) || !KeyRegex.IsMatch(key)) { throw new ConfigurationException(SRClient.AppSettingsConfigSettingInvalidKey(key)); } var value = keyValues[i + 1]; if (string.IsNullOrWhiteSpace(value) || !ValueRegex.IsMatch(value)) { throw new ConfigurationException(SRClient.AppSettingsConfigSettingInvalidValue(key, value)); } if (settings[key] != null) { throw new ConfigurationException(SRClient.AppSettingsConfigDuplicateSetting(key)); } settings[key] = value; i++; } } } return(settings); }
private static NameValueCollection CreateNameValueCollectionFromConnectionString(string connectionString) { NameValueCollection nameValueCollection = new NameValueCollection(); if (!string.IsNullOrWhiteSpace(connectionString)) { string str = string.Concat(";", connectionString); string[] strArrays = Regex.Split(str, ";(OperationTimeout|Endpoint|RuntimePort|ManagementPort|StsEndpoint|WindowsDomain|WindowsUsername|WindowsPassword|OAuthDomain|OAuthUsername|OAuthPassword|SharedSecretIssuer|SharedSecretValue|SharedAccessKeyName|SharedAccessKey|TransportType)=", RegexOptions.IgnoreCase); if ((int)strArrays.Length > 0) { if (!string.IsNullOrWhiteSpace(strArrays[0])) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigSettingInvalidKey(connectionString)); } if ((int)strArrays.Length % 2 != 1) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigSettingInvalidKey(connectionString)); } for (int i = 1; i < (int)strArrays.Length; i++) { string str1 = strArrays[i]; if (string.IsNullOrWhiteSpace(str1) || !KeyValueConfigurationManager.KeyRegex.IsMatch(str1)) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigSettingInvalidKey(str1)); } string str2 = strArrays[i + 1]; if (string.IsNullOrWhiteSpace(str2) || !KeyValueConfigurationManager.ValueRegex.IsMatch(str2)) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigSettingInvalidValue(str1, str2)); } if (nameValueCollection[str1] != null) { throw new ConfigurationErrorsException(SRClient.AppSettingsConfigDuplicateSetting(str1)); } nameValueCollection[str1] = str2; i++; } } } return(nameValueCollection); }