public PreferencesViewModel(IWritableOptions <ApplicationOptions> options, ApplicationInfo applicationInfo, IMessenger messenger, ILuxaforClient luxaforClient)
            : base(messenger)
        {
            _options = options;
            Title    = applicationInfo.Format("Preferences");
            Tokens   = new ObservableCollection <SlackToken>();

            UpdatePreferencesCommand = new RelayCommand(() =>
            {
                SaveSettings();
                CloseCommand?.Execute(null);
            });
            CloseCommand        = new RelayCommand(() => Messenger.Send(new CloseWindowMessage()));
            RequestTokenCommand = new RelayCommand(() => Process.Start(new ProcessStartInfo(OAuthHelper.GetAuthorizationUri().ToString())
            {
                UseShellExecute = true
            }));
            RemoveTokenCommand = new RelayCommand <SlackToken>(x => Tokens.Remove(x !));
            AddTokenCommand    = new RelayCommand(() => AddToken());

            _luxaforClient = luxaforClient;

            LoadSettings();
        }