static void Monitor(int deviceId, string longitude, string latitude, string warningTemp, DatabaseConnection database) { var warningThreshhold = double.Parse(warningTemp); Sensor tempProbe = new Sensor(); while (true) { var tempReading = GetCurrentTemp(tempProbe); if (tempReading > warningThreshhold) Console.Out.WriteLine(String.Format("WARNING: Temperature reading of {0} exceeded the warning threshhold of {1}." , tempReading, warningTemp)); database.WriteTemperature(tempReading, deviceId, longitude, latitude, tempReading > warningThreshhold); Thread.Sleep(10000); } }
static void Main(string[] args) { if(args.Length != 4 || args[0] == "-help" || args[0] == "-h") { Console.Out.WriteLine("Must Pass four arguments to the process"); Console.Out.WriteLine("1) Device Id - This must be registered in the Database"); Console.Out.WriteLine("2) Latitude"); Console.Out.WriteLine("3) Longitude"); Console.Out.WriteLine("4) Warning Temp"); } int deviceId = int.Parse(args[0]); DatabaseConnection database = new DatabaseConnection(); try { database.ActivateDevice(deviceId); Task.Factory.StartNew(() => Monitor(deviceId, args[1], args[2], args[3], database)); Console.Out.WriteLine("Press any key to quit"); Console.ReadKey(); database.DeactivateDevices(deviceId); } catch { database.DeactivateDevices(deviceId); throw; } }