public MainViewModel(IMonitorService monitorService, IHotKeyService hotKeyService, ISettingsProvider settingsProvider,
                             IStartupService startupService, IDialogService dialogService)
        {
            var monitors = monitorService.GetPhysicalMonitors();

            Monitor = new MonitorViewModel(monitors.First(), monitorService);
            Monitor.BrightnessChanged += OnBrightnessChanged;

            Settings = new SettingsViewModel(settingsProvider, dialogService);
            Settings.SettingsChanged += OnSettingsChanged;

            MouseWheelCommand      = new RelayCommand <MouseWheelEventArgs>(OnMouseWheelScroll);
            ShowWindowCommand      = new RelayCommand(ShowWindow);
            ExitApplicationCommand = new RelayCommand(ExitApplication);

            IncreaseBrightnessCommand = new RelayCommand(IncreaseBrightness);
            DecreaseBrightnessCommand = new RelayCommand(DecreaseBrightness);

            _settingsProvider = settingsProvider;
            _startupService   = startupService;
            _startupService.RunAppOnStartup(Settings.RunOnStartUp);
            _hotKeyManager = new HotKeyManagerViewModel(hotKeyService, this);
            _dialogService = dialogService;
        }