public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddCaching(); services.AddSession(); services.AddMvc(); services.AddSingleton<PassThroughAttribute>(); services.AddSingleton<UserNameService>(); services.AddTransient<ITestService, TestService>(); services.ConfigureMvc(options => { options.Filters.Add(typeof(PassThroughAttribute), order: 17); options.AddXmlDataContractSerializerFormatter(); options.Filters.Add(new FormatFilterAttribute()); }); #if DNX451 // Fully-qualify configuration path to avoid issues in functional tests. Just "config.json" would be fine // but Configuration uses CallContextServiceLocator.Locator.ServiceProvider to get IApplicationEnvironment. // Functional tests update that service but not in the static provider. var applicationEnvironment = services.BuildServiceProvider().GetRequiredService<IApplicationEnvironment>(); var configurationPath = Path.Combine(applicationEnvironment.ApplicationBasePath, "config.json"); // Set up configuration sources. var configuration = new Configuration() .AddJsonFile(configurationPath) .AddEnvironmentVariables(); string diSystem; if (configuration.TryGet("DependencyInjection", out diSystem) && diSystem.Equals("AutoFac", StringComparison.OrdinalIgnoreCase)) { _autoFac = true; services.ConfigureRazorViewEngine(options => { var expander = new LanguageViewLocationExpander( context => context.HttpContext.Request.Query["language"]); options.ViewLocationExpanders.Insert(0, expander); }); // Create the autofac container var builder = new ContainerBuilder(); // Create the container and use the default application services as a fallback AutofacRegistration.Populate( builder, services); builder.RegisterModule<MonitoringModule>(); var container = builder.Build(); return container.Resolve<IServiceProvider>(); } else #endif { return services.BuildServiceProvider(); } }
public void LoadAndCombineKeyValuePairsFromDifferentConfigurationSources() { // Arrange var dic1 = new Dictionary <string, string>() { { "Mem1:KeyInMem1", "ValueInMem1" } }; var dic2 = new Dictionary <string, string>() { { "Mem2:KeyInMem2", "ValueInMem2" } }; var dic3 = new Dictionary <string, string>() { { "Mem3:KeyInMem3", "ValueInMem3" } }; var memConfigSrc1 = new MemoryConfigurationSource(dic1); var memConfigSrc2 = new MemoryConfigurationSource(dic2); var memConfigSrc3 = new MemoryConfigurationSource(dic3); var config = new Configuration(); string memVal1, memVal2, memVal3; bool memRet1, memRet2, memRet3; // Act config.AddLoadedSource(memConfigSrc1); config.AddLoadedSource(memConfigSrc2); config.AddLoadedSource(memConfigSrc3); memRet1 = config.TryGet("mem1:keyinmem1", out memVal1); memRet2 = config.TryGet("Mem2:KeyInMem2", out memVal2); memRet3 = config.TryGet("MEM3:KEYINMEM3", out memVal3); // Assert Assert.Equal(3, CountAllEntries(config)); Assert.Contains(memConfigSrc1, config); Assert.Contains(memConfigSrc2, config); Assert.Contains(memConfigSrc3, config); Assert.True(memRet1); Assert.True(memRet2); Assert.True(memRet3); Assert.Equal("ValueInMem1", memVal1); Assert.Equal("ValueInMem2", memVal2); Assert.Equal("ValueInMem3", memVal3); Assert.Equal("ValueInMem1", config.Get("mem1:keyinmem1")); Assert.Equal("ValueInMem2", config.Get("Mem2:KeyInMem2")); Assert.Equal("ValueInMem3", config.Get("MEM3:KEYINMEM3")); Assert.Null(config.Get("NotExist")); Assert.Equal("ValueInMem1", config["mem1:keyinmem1"]); Assert.Equal("ValueInMem2", config["Mem2:KeyInMem2"]); Assert.Equal("ValueInMem3", config["MEM3:KEYINMEM3"]); Assert.Null(config["NotExist"]); }
public bool TryGet(string key, out string value) { // Null key indicates that the prefix passed to ctor should be used as a key if (key == null) { // Strip off the trailing colon to get a valid key var defaultKey = _prefix.Substring(0, _prefix.Length - 1); return(_root.TryGet(defaultKey, out value)); } return(_root.TryGet(_prefix + key, out value)); }
private TestConfig() { _cstr = Environment.GetEnvironmentVariable("CUSTOMCONNSTR_TestAccount"); const string cliConfigPath = "App.config"; const string vsConfigPath = "..\\..\\App.config"; if (_cstr == null) { var configuration = new Configuration(); if (File.Exists(cliConfigPath)) { configuration.AddXmlFile(cliConfigPath); } else if (File.Exists(vsConfigPath)) { configuration.AddXmlFile(vsConfigPath); } if (configuration.TryGet("TestAccount:ConnectionString", out _cstr)) { _cstr = _cstr.Trim(); } } }
public TestConfig() { _dataSource = Environment.GetEnvironmentVariable("PERFRUN_DataSource"); RuntimeFlavor = getRuntimeFlavor(); var resultsDirectory = Environment.GetEnvironmentVariable("PERFRUN_ResultsDirectory"); ResultsDirectory = string.IsNullOrEmpty(resultsDirectory) ? ResultsDirectory : resultsDirectory; const string cliConfigPath = "LocalConfig.json"; const string vsConfigPath = "..\\..\\LocalConfig.json"; if (_dataSource != null) { RunPerfTests = true; } else { var configuration = new Configuration(); if (File.Exists(cliConfigPath)) { configuration.AddJsonFile(cliConfigPath); } else if (File.Exists(vsConfigPath)) { configuration.AddJsonFile(vsConfigPath); } if (configuration.TryGet("Data:DefaultDataSource:DataSource", out _dataSource)) { _dataSource = _dataSource.Trim(); string runPerfTests; configuration.TryGet("Data:RunPerfTests", out runPerfTests); RunPerfTests = !string.IsNullOrEmpty(runPerfTests) && !runPerfTests.ToLower().Equals("false"); } } }
public void Configure(IBuilder app) { app.UseFileServer(); #if NET45 var configuration = new Configuration() .AddJsonFile(@"App_Data\config.json") .AddEnvironmentVariables(); string diSystem; if (configuration.TryGet("DependencyInjection", out diSystem) && diSystem.Equals("AutoFac", StringComparison.OrdinalIgnoreCase)) { app.UseMiddleware<MonitoringMiddlware>(); var services = new ServiceCollection(); services.AddMvc(); services.AddSingleton<PassThroughAttribute>(); services.AddSingleton<UserNameService>(); services.AddTransient<ITestService, TestService>(); services.Add(OptionsServices.GetDefaultServices()); // Create the autofac container ContainerBuilder builder = new ContainerBuilder(); // Create the container and use the default application services as a fallback AutofacRegistration.Populate( builder, services, fallbackServiceProvider: app.ApplicationServices); builder.RegisterModule<MonitoringModule>(); IContainer container = builder.Build(); app.UseServices(container.Resolve<IServiceProvider>()); } else #endif { app.UseServices(services => { services.AddMvc(); services.AddSingleton<PassThroughAttribute>(); services.AddSingleton<UserNameService>(); services.AddTransient<ITestService, TestService>(); }); } app.UseMvc(routes => { routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action}"); routes.MapRoute( "controllerActionRoute", "{controller}/{action}", new { controller = "Home", action = "Index" }); routes.MapRoute( "controllerRoute", "{controller}", new { controller = "Home" }); }); }
public void LoadAndCombineKeyValuePairsFromDifferentConfigurationSources() { // Arrange var dic1 = new Dictionary<string, string>() { {"Mem1:KeyInMem1", "ValueInMem1"} }; var dic2 = new Dictionary<string, string>() { {"Mem2:KeyInMem2", "ValueInMem2"} }; var dic3 = new Dictionary<string, string>() { {"Mem3:KeyInMem3", "ValueInMem3"} }; var memConfigSrc1 = new MemoryConfigurationSource(dic1); var memConfigSrc2 = new MemoryConfigurationSource(dic2); var memConfigSrc3 = new MemoryConfigurationSource(dic3); var config = new Configuration(); string memVal1, memVal2, memVal3; bool memRet1, memRet2, memRet3; // Act config.AddLoadedSource(memConfigSrc1); config.AddLoadedSource(memConfigSrc2); config.AddLoadedSource(memConfigSrc3); memRet1 = config.TryGet("mem1:keyinmem1", out memVal1); memRet2 = config.TryGet("Mem2:KeyInMem2", out memVal2); memRet3 = config.TryGet("MEM3:KEYINMEM3", out memVal3); // Assert Assert.Contains(memConfigSrc1, config.Sources); Assert.Contains(memConfigSrc2, config.Sources); Assert.Contains(memConfigSrc3, config.Sources); Assert.True(memRet1); Assert.True(memRet2); Assert.True(memRet3); Assert.Equal("ValueInMem1", memVal1); Assert.Equal("ValueInMem2", memVal2); Assert.Equal("ValueInMem3", memVal3); Assert.Equal("ValueInMem1", config.Get("mem1:keyinmem1")); Assert.Equal("ValueInMem2", config.Get("Mem2:KeyInMem2")); Assert.Equal("ValueInMem3", config.Get("MEM3:KEYINMEM3")); Assert.Null(config.Get("NotExist")); Assert.Equal("ValueInMem1", config["mem1:keyinmem1"]); Assert.Equal("ValueInMem2", config["Mem2:KeyInMem2"]); Assert.Equal("ValueInMem3", config["MEM3:KEYINMEM3"]); Assert.Null(config["NotExist"]); }