public static IWebHostBuilder BuildWebHostBuilder(string[] args) { // TEMP CONFIG BUILDER TO GET THE VALUES IN THE ELASTIC BEANSTALK CONFIG IConfigurationBuilder tempConfigBuilder = new ConfigurationBuilder(); tempConfigBuilder.AddJsonFile( @"C:\Program Files\Amazon\ElasticBeanstalk\config\containerconfiguration", optional: true, reloadOnChange: true ); IConfigurationRoot tempConfig = tempConfigBuilder.Build(); Dictionary <string, string> ebConfig = ConfigurationBuilderExtensions.GetConfig(tempConfig); // START WEB HOST BUILDER IWebHostBuilder builder = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()); // CHECK IF EBCONFIG HAS ENVIRONMENT KEY IN IT // IF SO THEN CHANGE THE BUILDERS ENVIRONMENT const string envKey = "ASPNETCORE_ENVIRONMENT"; if (ebConfig.ContainsKey(envKey)) { string ebEnvironment = ebConfig[envKey]; builder.UseEnvironment(ebEnvironment); } // CONTINUE WITH WEB HOST BUILDER AS NORMAL builder.ConfigureAppConfiguration((hostingContext, config) => { IHostingEnvironment env = hostingContext.HostingEnvironment; // ADD THE ELASTIC BEANSTALK CONFIG DICTIONARY config.AddJsonFile( "appsettings.json", optional: false, reloadOnChange: true ) .AddJsonFile( $"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true ) .AddInMemoryCollection(ebConfig); config.AddEnvironmentVariables(); if (args != null) { config.AddCommandLine(args); } }) .UseIISIntegration(); return(builder); }
public void GetSettingsDictionary_returns_the_expected_configuration_values() { // ARRANGE var settingsObject = new TestSettingsClass1() { Setting1 = "value1", Setting2 = true, Setting3 = false, Setting4 = TestEnum3.Value2, Setting5 = TestEnum3.Value2, Setting6 = 1, Setting7 = 2 }; // ACT var settingsDictionary = ConfigurationBuilderExtensions.GetSettingsDictionary(settingsObject); // ASSERT Assert.NotNull(settingsDictionary); Assert.Contains("root:Setting1", settingsDictionary.Keys); Assert.Contains("root:Setting2", settingsDictionary.Keys); Assert.Contains("root:Setting3", settingsDictionary.Keys); Assert.Contains("root:Setting4", settingsDictionary.Keys); Assert.Contains("root:Setting5", settingsDictionary.Keys); Assert.Equal("value1", settingsDictionary["root:Setting1"]); Assert.Equal("True", settingsDictionary["root:Setting2"]); Assert.Equal("False", settingsDictionary["root:Setting3"]); Assert.Equal("Value2", settingsDictionary["root:Setting4"]); Assert.Equal("Value2", settingsDictionary["root:Setting5"]); Assert.Equal("1", settingsDictionary["root:Setting6"]); Assert.Equal("2", settingsDictionary["root:Setting7"]); }
public void GetSettingsDictionary_throws_InvalidOperationException_is_property_has_not_getter() { // ARRANGE var settingsObject = new TestSettingsClass4(); // ACT / ASSERT Assert.Throws <InvalidOperationException>(() => ConfigurationBuilderExtensions.GetSettingsDictionary(settingsObject)); }
public static async Task Main(string[] args) { IConfigurationBuilder tempConfigBuilder = new ConfigurationBuilder(); tempConfigBuilder.AddJsonFile( @"C:\Program Files\Amazon\ElasticBeanstalk\config\containerconfiguration", optional: true, reloadOnChange: true ); IConfigurationRoot tempConfig = tempConfigBuilder.Build(); Dictionary <string, string> ebConfig = ConfigurationBuilderExtensions.GetConfig(tempConfig); // CHECK IF EBCONFIG HAS ENVIRONMENT KEY IN IT // IF SO THEN CHANGE THE BUILDERS ENVIRONMENT const string envKey = "ASPNETCORE_ENVIRONMENT"; var ebEnvironment = "Development"; if (ebConfig.ContainsKey(envKey)) { ebEnvironment = ebConfig[envKey]; } tempConfigBuilder.AddJsonFile( "appsettings.json", optional: false, reloadOnChange: true ) .AddJsonFile( $"appsettings.{ebEnvironment}.json", optional: true, reloadOnChange: true ) .AddInMemoryCollection(ebConfig); try { IServiceCollection services = new ServiceCollection(); services.AddMemoryCache(); var builder = new ContainerBuilder(); builder.RegisterModule(new Modules.AutofacModule(tempConfigBuilder.Build())); builder.Populate(services); var container = builder.Build(); using (var scope = container.BeginLifetimeScope()) { await scope.Resolve <ISynchronizer>().Synchronize(); } } catch (Exception e) { // TODO: Log and report Console.WriteLine($"EXCEPTION: {e.Message}"); } Console.WriteLine("ExperienceOz Sync Completed..!"); }
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseContentRoot(Directory.GetCurrentDirectory()) .ConfigureAppConfiguration((hostingContext, config) => { var environmentName = hostingContext.HostingEnvironment.EnvironmentName; config = ConfigurationBuilderExtensions.GetConfigurationBuilder(environmentName); }) .UseIISIntegration() .UseStartup <Startup>();
public void GetSettingsDictionary_ignores_non_public_properties() { // ARRANGE var settingsObject = new TestSettingsClass7(); // ACT var settingsDictionary = ConfigurationBuilderExtensions.GetSettingsDictionary(settingsObject); // ASSERT Assert.NotNull(settingsDictionary); Assert.Empty(settingsDictionary); }
public void ParameterValidation() { var sut = new ConfigurationBuilder(); Assert.Throws <ArgumentNullException>(() => { sut.AddBotRuntimeConfiguration(null); }); Assert.Throws <ArgumentNullException>(() => { ConfigurationBuilderExtensions.AddBotRuntimeConfiguration(null, "blah"); }); }
public void GetSettingsDictionary_ignores_properties_if_their_value_is_null() { // ARRANGE var settingsObject = new TestSettingsClass5() { Setting1 = null }; // ACT var settingsDictionary = ConfigurationBuilderExtensions.GetSettingsDictionary(settingsObject); // ASSERT Assert.NotNull(settingsDictionary); Assert.Empty(settingsDictionary); }
public void GetSettingsDictionary_loads_values_from_readonly_properties() { // ARRANGE var settingsObject = new TestSettingsClass6("value1"); // ACT var settingsDictionary = ConfigurationBuilderExtensions.GetSettingsDictionary(settingsObject); // ASSERT Assert.NotNull(settingsDictionary); var kvp = Assert.Single(settingsDictionary); Assert.Equal("root:Setting1", kvp.Key); Assert.Equal("value1", kvp.Value); }
public void Matcher_does_not_match_other_macros() { // ARRANGE var builder = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string> { ["Root:NotRoot:Setting"] = "@Microsoft.Other(SecretUri=https://foo.bar/baz)" }); // ACT var found = ConfigurationBuilderExtensions.GatherTransformablePairs(builder); // ASSERT Assert.NotNull(found); Assert.Empty(found); }
public void Matcher_can_find_nested_level_matches() { // ARRANGE var builder = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary <string, string> { ["Root:NotRoot:Setting"] = "@Microsoft.KeyVault(SecretUri=https://foo.bar/baz)" }); // ACT var found = ConfigurationBuilderExtensions.GatherTransformablePairs(builder); // ASSERT Assert.NotNull(found); Assert.NotEmpty(found); Assert.Single(found, match => match.Key == "Root:NotRoot:Setting" && match.Value == "https://foo.bar/baz"); }
public void GetSettingsDictionary_correctly_handles_IEnumerables() { // ARRANGE var settingsObject = new TestSettingsClass12() { Setting1 = Enumerable.Range(1, 2).Select(i => $"value{i}") }; // ACT var settingsDictionary = ConfigurationBuilderExtensions.GetSettingsDictionary(settingsObject); // ASSERT Assert.NotNull(settingsDictionary); Assert.Equal(2, settingsDictionary.Count); Assert.Contains("setting1:0", settingsDictionary.Keys); Assert.Contains("setting1:1", settingsDictionary.Keys); Assert.Equal("value1", settingsDictionary["setting1:0"]); Assert.Equal("value2", settingsDictionary["setting1:1"]); }
public void GetSettingsDictionary_correctly_handles_arrays() { // ARRANGE var settingsObject = new TestSettingsClass11() { Setting1 = new[] { "value1", "value2" } }; // ACT var settingsDictionary = ConfigurationBuilderExtensions.GetSettingsDictionary(settingsObject); // ASSERT Assert.NotNull(settingsDictionary); Assert.Equal(2, settingsDictionary.Count); Assert.Contains("setting1:0", settingsDictionary.Keys); Assert.Contains("setting1:1", settingsDictionary.Keys); Assert.Equal("value1", settingsDictionary["setting1:0"]); Assert.Equal("value2", settingsDictionary["setting1:1"]); }
private TContext Create(string connectionStringName) { var environmentName = Environment.GetEnvironmentVariable(ConfigurationNames.AspNetCoreEnvironment); var configurationBuilder = ConfigurationBuilderExtensions.GetConfigurationBuilder(environmentName); var configuration = configurationBuilder.Build(); var connectionString = configuration.GetConnectionString(connectionStringName); if (string.IsNullOrEmpty(connectionString)) { throw new ArgumentException($"Connection string '{connectionStringName}' is null or empty.", nameof(connectionString)); } Console.WriteLine($"DesignTimeDbContextFactoryBase.Create(string): Connection string: '{connectionString}'."); var optionsBuilder = new DbContextOptionsBuilder <TContext>(); optionsBuilder.UseSqlServer(connectionString); return(CreateNewInstance(optionsBuilder.Options)); }
public void GetSettingsDictionary_correctly_handles_nullable_ints() { // ARRANGE var settingsObject = new TestSettingsClass10() { Setting1 = 23, Setting2 = 42, Setting3 = null }; // ACT var settingsDictionary = ConfigurationBuilderExtensions.GetSettingsDictionary(settingsObject); // ASSERT Assert.NotNull(settingsDictionary); Assert.Contains("setting1", settingsDictionary.Keys); Assert.Contains("setting2", settingsDictionary.Keys); Assert.DoesNotContain("setting3", settingsDictionary.Keys); Assert.Equal("23", settingsDictionary["setting1"]); Assert.Equal("42", settingsDictionary["setting2"]); }
private static async void TimerCallBack(Object o) { IConfigurationBuilder tempConfigBuilder = new ConfigurationBuilder(); //tempConfigBuilder.AddJsonFile( // @"C:\Program Files\Amazon\ElasticBeanstalk\config\containerconfiguration", // optional: true, // reloadOnChange: true //); IConfigurationRoot tempConfig = tempConfigBuilder.Build(); Dictionary <string, string> ebConfig = ConfigurationBuilderExtensions.GetConfig(tempConfig); // CHECK IF EBCONFIG HAS ENVIRONMENT KEY IN IT // IF SO THEN CHANGE THE BUILDERS ENVIRONMENT const string envKey = "ASPNETCORE_ENVIRONMENT"; var ebEnvironment = "Development"; if (ebConfig.ContainsKey(envKey)) { ebEnvironment = ebConfig[envKey]; } tempConfigBuilder.AddJsonFile( "appsettings.json", optional: false, reloadOnChange: true ) .AddJsonFile( $"appsettings.{ebEnvironment}.json", optional: true, reloadOnChange: true ) .AddInMemoryCollection(ebConfig); try { IServiceCollection services = new ServiceCollection(); services.AddMemoryCache(); var builder = new ContainerBuilder(); builder.RegisterModule(new AutofacModule(tempConfigBuilder.Build())); builder.Populate(services); var container = builder.Build(); using (var scope = container.BeginLifetimeScope()) { //await scope.Resolve<ISynchronizer>().Synchronize(); //await scope.Resolve<IValueRetailDataSync>().Synchronize(); //await scope.Resolve<IPOneSync>().Synchronize(); await scope.Resolve <ITiqetsDataSync>().Synchronize(); //await scope.Resolve<IHohoSync>().Synchronize(); //await scope.Resolve<IAlgoliaDataSync>().Synchronize(); } } catch (Exception e) { Console.WriteLine("Exception : " + DateTime.Now); } Console.WriteLine("Timer: " + DateTime.Now); GC.Collect(); }
public void IsSupportedPropertyType_returns_false_for_unsupported_property_types(Type type) { Assert.False(ConfigurationBuilderExtensions.IsSupportedPropertyType(type)); }