private MenuItem[] CreateNotifyIconContextMenu()
        {
            var exit = new MenuItem {
                Text = "Exit"
            };

            exit.Click += (o, s) =>
            {
                _service.Stop();
                Close();
            };

            var restart = new MenuItem {
                Text = "Restart"
            };

            restart.Click += (o, s) =>
            {
                _service.Stop();
                _service.Start();
            };

            var dashboard = new MenuItem {
                Text = "Dashboard"
            };

            dashboard.Click += (o, s) =>
            {
                var dashboardPath = Path.Combine(BaseDir + "\\Client.WPF.exe");

                if (File.Exists(dashboardPath))
                {
                    var startInfo = new ProcessStartInfo();
                    startInfo.FileName = dashboardPath;
                    Process.Start(startInfo);
                }
                else
                {
                    _logger.Fatal(new FileNotFoundException(dashboardPath));
                }
            };

            return(new MenuItem[] {
                dashboard, restart, exit
            });
        }
        public MainWindow()
        {
            InitializeComponent();
            _service = new SensorDataService();
            _logger  = LogManager.GetCurrentClassLogger();

            AppDomain currentDomain = AppDomain.CurrentDomain;

            currentDomain.UnhandledException += CurrentDomain_UnhandledException;

            CreateIcon();
            _service.Start();
            try
            {
                EnsureAppIsInStartup();
            }
            catch (Exception e)
            {
                _logger.Fatal(e);
            }
        }