private void Validate()
        {
            if (this.Endpoints.Count == 0)
            {
                throw Fx.Exception.ArgumentNullOrEmpty("Endpoints");
            }
            bool flag  = !string.IsNullOrWhiteSpace(this.SharedSecretIssuerName);
            bool flag1 = !string.IsNullOrWhiteSpace(this.SharedSecretIssuerSecret);

            if ((!flag || !flag1) && (flag || flag1))
            {
                throw Fx.Exception.Argument("SharedSecretIssuerName, SharedSecretIssuerSecret", SRClient.ArgumentInvalidCombination("SharedSecretIssuerName, SharedSecretIssuerSecret"));
            }
            bool flag2 = !string.IsNullOrWhiteSpace(this.SharedAccessKeyName);
            bool flag3 = !string.IsNullOrWhiteSpace(this.SharedAccessKey);

            if ((!flag2 || !flag3) && (flag2 || flag3))
            {
                throw Fx.Exception.Argument("SharedAccessKeyName, SharedAccessSecret", SRClient.ArgumentInvalidCombination("SharedAccessKeyName, SharedAccessSecret"));
            }
            bool flag4 = !string.IsNullOrWhiteSpace(this.WindowsCredentialUsername);
            bool flag5 = (this.WindowsCredentialPassword == null ? false : this.WindowsCredentialPassword.Length > 0);

            if ((!flag4 || !flag5) && (flag4 || flag5))
            {
                throw Fx.Exception.Argument("WindowsCredentialUsername, WindowsCredentialPassword", SRClient.ArgumentInvalidCombination("WindowsCredentialUsername, WindowsCredentialPassword"));
            }
            bool flag6 = !string.IsNullOrWhiteSpace(this.OAuthUsername);
            bool flag7 = (this.OAuthPassword == null ? false : this.OAuthPassword.Length > 0);

            if ((!flag6 || !flag7) && (flag6 || flag7))
            {
                throw Fx.Exception.Argument("OAuthUsername, OAuthPassword", SRClient.ArgumentInvalidCombination("OAuthUsername, OAuthPassword"));
            }
        }