namespace TomPIT.Connected.Configuration { internal static class SysConfiguration { private const string DefaultStart = "Connected.Instance.Start, Connected.Instance"; private static List _microServices; private static List _locations; private static string _start; public static List MicroServices => _microServices; public static List Locations => _locations; public static string Start => _start; public static void Build() { var cb = new ConfigurationBuilder(); var appPath = AppContext.BaseDirectory; var segments = new Uri(appPath).Segments; segments = segments.Select(e => e.Replace("%20", " ")).ToArray(); for (var i = 1; i <= segments.Length; i++) { var pathBase = Path.Combine(segments[0..i]); var filePath = Path.Combine(pathBase, "sys.json"); if (File.Exists(filePath)) { cb.AddJsonFile(filePath, true, false); break; } } cb.AddEnvironmentVariables(); var config = cb.Build(); _microServices = new List(); _locations = new List(); config.Bind("microServices", _microServices); config.Bind("locations", _locations); _start = config["start"]; if (string.IsNullOrWhiteSpace(_start)) _start = DefaultStart; } } }