public KeyVaultDataServiceClient(IAuthenticationFactory authFactory, AzureContext context, HttpClient httpClient)
        {
            if (authFactory == null)
            {
                throw new ArgumentNullException("authFactory");
            }
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            if (context.Environment == null)
            {
                throw new ArgumentException(Resources.InvalidAzureEnvironment);
            }
            if (httpClient == null)
            {
                throw new ArgumentNullException("httpClient");
            }

            var credential = new DataServiceCredential(authFactory, context);

            this.keyVaultClient = new Client.KeyVaultClient(
                credential.OnAuthentication,
                SendRequestCallback,
                ReceiveResponseCallback,
                httpClient);


            this.vaultUriHelper = new VaultUriHelper(
                context.Environment.Endpoints[AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix]);
        }
        public KeyVaultDataServiceClient(IAuthenticationFactory authFactory, AzureContext context, HttpClient httpClient)
        {
            if (authFactory == null)
            {
                throw new ArgumentNullException("authFactory");
            }
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            if (context.Environment == null)
            {
                throw new ArgumentException(KeyVaultProperties.Resources.InvalidAzureEnvironment);
            }
            if (httpClient == null)
            {
                throw new ArgumentNullException("httpClient");
            }

            var credential = new DataServiceCredential(authFactory, context, AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId);

            this.keyVaultClient = new KeyVaultClient(
                credential.OnAuthentication,
                httpClient);


            this.vaultUriHelper = new VaultUriHelper(
                context.Environment.Endpoints[AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix]);
        }
        public KeyVaultDataServiceClient(IAuthenticationFactory authFactory, AzureContext context, HttpClient httpClient)
        {
            if (authFactory == null)
            {
                throw new ArgumentNullException("authFactory");
            }
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            if (context.Environment == null)
            {
                throw new ArgumentException(Resources.InvalidAzureEnvironment);
            }
            if (httpClient == null)
            {
                throw new ArgumentNullException("httpClient");
            }

            var credential = new DataServiceCredential(authFactory, context);
            this.keyVaultClient = new Client.KeyVaultClient(
                credential.OnAuthentication,
                SendRequestCallback,
                ReceiveResponseCallback,
                httpClient);


            this.vaultUriHelper = new VaultUriHelper(
                context.Environment.Endpoints[AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix]);
        }
        public KeyVaultDataServiceClient(IAuthenticationFactory authFactory, AzureContext context)
        {
            if (authFactory == null)
                throw new ArgumentNullException("authFactory");
            if (context == null)
                throw new ArgumentNullException("context");
            if (context.Environment == null)
                throw new ArgumentException(KeyVaultProperties.Resources.InvalidAzureEnvironment);

            var credential = new DataServiceCredential(authFactory, context, AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId);
            this.keyVaultClient = new KeyVaultClient(credential.OnAuthentication);


            this.vaultUriHelper = new VaultUriHelper(
                context.Environment.Endpoints[AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix]);
        }