public static void Load() { //required if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("MONGO_HOST"))) { throw new Exception("MONGO_HOST is not defined"); } if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("IOT_API"))) { throw new Exception("IOT_API is not defined"); } //optional if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("CACHING"))) { if (int.TryParse(Environment.GetEnvironmentVariable("CACHING"), out var val) && val == 0) { UseCache = false; } } if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("MONGO_DB"))) { MongoDatabase = Environment.GetEnvironmentVariable("MONGO_DB"); } if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("MONGO_PORT"))) { int.TryParse(Environment.GetEnvironmentVariable("MONGO_PORT"), out _mongoPort); } if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("TIMEOUT"))) { int.TryParse(Environment.GetEnvironmentVariable("TIMEOUT"), out WebClientTimeout); } if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("DEVICE_RETRIES"))) { int.TryParse(Environment.GetEnvironmentVariable("DEVICE_RETRIES"), out DeviceRetries); } //load _mongoHost = Environment.GetEnvironmentVariable("MONGO_HOST"); IotApiUrl = Environment.GetEnvironmentVariable("IOT_API"); if (UseCache) { ScheduleRepository.BuildCache(); Console.WriteLine("[Configuration] Configured to use in-memory cache."); } Console.WriteLine($"[Configuration] Configured to use mongo @ {MongoDbUrl}"); Console.WriteLine($"[Configuration] Configured to use IOT-API @ {IotApiUrl}"); }