static Config() { Console.WriteLine($"ASPNETCORE_ENVIRONMENT: {Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}"); Configuration = Build(); VirtualDateTime.Initialise(OffsetCurrentDateTimeForSite()); Console.WriteLine($"Environment: {EnvironmentName}"); }
public void TearDown() { VirtualDateTime.Initialise(Config.OffsetCurrentDateTimeForSite()); }
public void Setup() { VirtualDateTime.Initialise(TimeSpan.Parse("3.01:00") /* 3 days and one hour */); }
public void Setup() { VirtualDateTime.Initialise(ConfigHelpers.SharedOptions.DateTimeOffset); }
public void Setup() { VirtualDateTime.Initialise(TimeSpan.Zero); }
public IConfiguration Build() { Console.WriteLine($"Environment: {_environmentName}"); string appSettingsPath = AppDomain.CurrentDomain.BaseDirectory; //When running locally load from this project folder if (Configuration.IsLocal()) { appSettingsPath = Path.Combine(Directory.GetParent(Environment.CurrentDirectory).FullName, this.GetType().Namespace); } _configBuilder.SetFileProvider(new PhysicalFileProvider(appSettingsPath)); _configBuilder.AddJsonFile("appsettings.json", false, true); _configBuilder.AddJsonFile($"appsettings.{_environmentName}.json", true, true); _configBuilder.AddEnvironmentVariables(); var configuration = _configBuilder.Build(); //Add the azure key vault to configuration var vault = configuration["Vault"]; if (!string.IsNullOrWhiteSpace(vault)) { if (!vault.StartsWithI("http")) { vault = $"https://{vault}.vault.azure.net/"; } var clientId = configuration["ClientId"]; var clientSecret = configuration["ClientSecret"]; var exceptions = new List <Exception>(); if (string.IsNullOrWhiteSpace(clientId)) { exceptions.Add(new ArgumentNullException("ClientId is missing")); } if (string.IsNullOrWhiteSpace(clientSecret)) { exceptions.Add(new ArgumentNullException("clientSecret is missing")); } if (exceptions.Count > 0) { throw new AggregateException(exceptions); } _configBuilder.AddAzureKeyVault(vault, clientId, clientSecret); } /* make sure these files are loaded AFTER the vault, so their keys superseed the vaults' values - that way, unit tests will pass because the obfuscation key is whatever the appSettings says it is [and not a hidden secret inside the vault]) */ if (Debugger.IsAttached || Configuration.IsLocal()) { var appAssembly = Misc.GetTopAssembly(); if (appAssembly != null) { _configBuilder.AddUserSecrets(appAssembly, true); } _configBuilder.AddJsonFile("appsettings.secret.json", true, true); } _configBuilder.AddJsonFile("appsettings.unittests.json", true, false); // override using the azure environment variables into the configuration _configBuilder.AddEnvironmentVariables(); var config = _configBuilder.Build(); if (!Configuration.IsProduction() && config.GetValue <bool>("DUMP_APPSETTINGS")) { foreach (var key in GetKeys(config)) { Console.WriteLine($@"APPSETTING[""{key}""]={config[key]}"); } } Encryption.SetDefaultEncryptionKey(config["DefaultEncryptionKey"]); Encryption.EncryptEmails = config.GetValueOrDefault("EncryptEmails", true); //Initialise the virtual date and time VirtualDateTime.Initialise(config["DateTimeOffset"]); return(config); }