public static IDependencyResolver UseAsyncKeyVaultApplicationConfiguration(this IDependencyResolver dependencyResolver,
string clientId,
string clientSecret,
string vaultUri,
bool useKeyVaultExclusively = false,
KeyVaultConfigurationCachePolicy cachePolicy = null,
bool checkIfKeyVaultKeyExistsBeforeGet = false)
{
if (cachePolicy == null)
{
cachePolicy = KeyVaultConfigurationCachePolicy.Default;
}
IAsyncConfiguration existingConfiguration = null;
if (!useKeyVaultExclusively)
{
existingConfiguration = dependencyResolver.Resolve<IAsyncConfiguration>();
}
IAsyncConfiguration keyVaultConfiguration = new AsyncKeyVaultConfiguration(
new KeyVault.Implementation.KeyVault(clientId, clientSecret, vaultUri, checkIfKeyVaultKeyExistsBeforeGet),
dependencyResolver.Resolve<IKeyVaultConfigurationKeyEncoder>(),
cachePolicy,
existingConfiguration);
dependencyResolver.Register(() => keyVaultConfiguration);
return dependencyResolver;
}