using Microsoft.Extensions.Configuration; namespace Pos.Api.Database { public class LoadConfig { private string dir; public LoadConfig() { dir = AppDomain.CurrentDomain.BaseDirectory; } public IConfiguration ByEnvironment() { //Console.Out.WriteLine($"Json path: {dir}"); #if DEBUG var config = new ConfigurationBuilder() .SetBasePath(dir) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true) .Build(); return config; #else var config = new ConfigurationBuilder() .SetBasePath(dir) .AddJsonFile("appsettings.Production.json", optional: true, reloadOnChange: true) .Build(); return config; #endif //Running in a environment that not is supported in this setup throw new Exception("HostingEnvironment is not supported! This config setup only supports Development or Production"); } public IConfiguration DebugConfiguration() { var config = new ConfigurationBuilder() .SetBasePath(dir) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true) .Build(); return config; } public IConfiguration ReleaseConfiguration() { var config = new ConfigurationBuilder() .SetBasePath(dir) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile("appsettings.Production.json", optional: true, reloadOnChange: true) .Build(); return config; } } }