public static IServiceCollection AddInfrastructure(this IServiceCollection services, Settings settings, IWebHostEnvironment env) { services.AddSharedInfrastructure(); services.AddScoped <FoxIDsApiRouteTransformer>(); services.AddSingleton <OidcDiscoveryHandler>(); if (env.IsProduction()) { services.AddSingleton(serviceProvider => { return(FoxIDsKeyVaultClient.GetManagedClient()); }); } else { services.AddTransient <TokenHelper>(); services.AddSingleton(serviceProvider => { var tokenHelper = serviceProvider.GetService <TokenHelper>(); return(FoxIDsKeyVaultClient.GetClient(settings, tokenHelper)); }); } services.AddHttpContextAccessor(); services.AddHttpClient(); services.AddApiSwagger(); services.AddAutoMapper(); return(services); }
public static IServiceCollection AddInfrastructure(this IServiceCollection services, FoxIDsSettings settings, IWebHostEnvironment env) { services.AddSharedInfrastructure(); services.AddSingleton <IStringLocalizer, FoxIDsStringLocalizer>(); services.AddSingleton <IStringLocalizerFactory, FoxIDsStringLocalizerFactory>(); services.AddSingleton <IValidationAttributeAdapterProvider, LocalizedValidationAttributeAdapterProvider>(); services.AddScoped <FoxIDsRouteTransformer>(); services.AddScoped <ICorsPolicyProvider, CorsPolicyProvider>(); services.AddSingleton <OidcDiscoveryHandler>(); if (env.IsProduction()) { services.AddSingleton(serviceProvider => { return(FoxIDsKeyVaultClient.GetManagedClient()); }); } else { services.AddTransient <TokenHelper>(); services.AddSingleton(serviceProvider => { var tokenHelper = serviceProvider.GetService <TokenHelper>(); return(FoxIDsKeyVaultClient.GetClient(settings, tokenHelper)); }); } services.AddHttpContextAccessor(); services.AddHttpClient(); services.AddDataProtection() .PersistKeysToStackExchangeRedis(ConnectionMultiplexer.Connect(settings.RedisCache.ConnectionString), "data_protection_keys"); services.AddStackExchangeRedisCache(options => { options.Configuration = settings.RedisCache.ConnectionString; options.InstanceName = "cache"; }); return(services); }