static void Main(string[] args) { var configuration = GetConfigurationService(args).Get <Configuration>(); if (!configuration.IsValid()) { Console.Error.WriteLine("It is necessary to provide the DeviceApiEndpoint, and DeviceApiKey configuration properties via environment variables or command line arguments."); Environment.Exit(1); } Console.WriteLine("Starting with configuration: " + JsonConvert.SerializeObject(configuration)); IO.Swagger.Client.Configuration.ApiKey = new Dictionary <string, string> { { "X-API-KEY", configuration.DeviceApiKey } }; ApiClient apliClient = new ApiClient(configuration.DeviceApiEndpoint); DevicesApi devicesApi = new DevicesApi(apliClient); Random random = new Random(); float temperature = random.Next(18, 30); float airHumidity = random.Next(0, 100); int carbonMonoxide = random.Next(0, 5); string[] healthStatuses = { "needs_service", "needs_new_filter", "gas_leak", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK" }; string serialNumber = Guid.NewGuid().ToString(); devicesApi.RegisterDevice(new DeviceInfo { SerialNumber = serialNumber, FirmwareVersion = "1.0.0" }); while (true) { devicesApi.SendReadings(new List <Reading> { new Reading { DateTime = DateTime.UtcNow, AirHumidity = airHumidity, Temperature = temperature, CarbonMonoxide = carbonMonoxide, HealthStatus = healthStatuses[random.Next(0, healthStatuses.Length)] } }, serialNumber); temperature += ((float)random.Next(-100, 100)) / 100f; airHumidity = Math.Min(100f, airHumidity + ((float)random.Next(-100, 100)) / 100f); carbonMonoxide = Math.Min(10, Math.Max(carbonMonoxide + random.Next(-1, 2), 0)); Thread.Sleep(60000); } }