예제 #1
0
        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}");
        }