public AnabasisConfiguration(IConfigurationRoot configurationRoot, AnabasisEnvironment anabasisEnvironment, AppConfigurationOptions appConfigurationOptions, GroupConfigurationOptions groupConfigurationOptions) { ConfigurationRoot = configurationRoot; AnabasisEnvironment = anabasisEnvironment; AppConfigurationOptions = appConfigurationOptions; GroupConfigurationOptions = groupConfigurationOptions; }
public static AnabasisConfiguration GetConfigurations(Action <ConfigurationBuilder>?configureConfigurationBuilder = null, DirectoryInfo?rootDirectory = null) { rootDirectory ??= new DirectoryInfo(Directory.GetCurrentDirectory()); var environment = Environment.GetEnvironmentVariable(AspNetCoreEnvironment); var anabasisEnvironment = AnabasisEnvironment.Development; if (null != environment && Enum.TryParse <AnabasisEnvironment>(environment, out var result)) { anabasisEnvironment = result; } var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddEnvironmentVariables(); configurationBuilder.AddJsonFile(Path.Combine(rootDirectory.FullName, BaseAppConfigurationFile), false, false); configurationBuilder.AddJsonFile(Path.Combine(rootDirectory.FullName, GetAppConfigurationOverrideFile(anabasisEnvironment)), true, false); configurationBuilder.AddJsonFile(Path.Combine(rootDirectory.FullName, BaseGroupConfigurationFileTemplate), true, false); configurationBuilder.AddJsonFile(Path.Combine(rootDirectory.FullName, GetGroupConfigurationOverrideFile(anabasisEnvironment)), true, false); configureConfigurationBuilder?.Invoke(configurationBuilder); var configurationRoot = configurationBuilder.Build(); var appConfigurationOptions = new AppConfigurationOptions(); configurationRoot.GetSection(nameof(AppConfigurationOptions)).Bind(appConfigurationOptions); appConfigurationOptions.Validate(); var groupConfigurationOptions = new GroupConfigurationOptions(); configurationRoot.GetSection(nameof(GroupConfigurationOptions)).Bind(groupConfigurationOptions); groupConfigurationOptions.Validate(); var anabasisConfiguration = new AnabasisConfiguration( configurationRoot, anabasisEnvironment, appConfigurationOptions, groupConfigurationOptions); return(anabasisConfiguration); }