public static void Main(string[] args)
        {
            //No arguments are currently read when ran in service mode.
            if (!Environment.UserInteractive)
            {
                ServiceBase.Run(new SensorMonitoringService());
                return;
            }

            if (Parser.Default.ParseArguments(args, Options))
            {
                _output = new ProgramOutput(Options);

                if (Options.SingleRun)
                {
                    _output.Print("Initializing single run for sensor {0}", Settings.Default.SensorId);
                    var monitor = new Monitor(GetConnectionInformation(), Settings.Default.SensorId);
                    monitor.ReadAndReport();
                    _output.Print("Run finished.");
                    return;
                }

                if (Options.Install)
                {
                    _output.Print("Installing service...");
                    Install();
                    _output.Print("Service installed. Exiting...");
                    return;
                }

                if (Options.Uninstall)
                {
                    _output.Print("Installing service...");
                    Uninstall();
                    _output.Print("Service installed. Exiting...");
                    return;
                }               
            }
            else
            {
                _output = new ConsoleOutput();
            }
            _output.Print(Options.GetUsage());
        }
 public MonitoringWorker(ConnectionInformation connectionInformation, int sensorId) : base(TimeSpan.FromSeconds(10))
 {
     _monitor = new Monitor(connectionInformation, sensorId);
 }