protected MiscSettingsPageViewModelBase(IWorkbook workbook, INavigationService navigationService, IMessageBoxService messageBoxService, INotificationService notificationService, IPlatformService platformService, ITrackingManager trackingManager, IPersistenceLayer persistenceLayer) : base(workbook, navigationService)
        {
            if (messageBoxService == null)
            {
                throw new ArgumentNullException(nameof(messageBoxService));
            }
            if (notificationService == null)
            {
                throw new ArgumentNullException(nameof(notificationService));
            }
            if (platformService == null)
            {
                throw new ArgumentNullException(nameof(platformService));
            }
            if (trackingManager == null)
            {
                throw new ArgumentNullException(nameof(trackingManager));
            }
            if (persistenceLayer == null)
            {
                throw new ArgumentNullException(nameof(persistenceLayer));
            }

            this.messageBoxService   = messageBoxService;
            this.notificationService = notificationService;
            this.platformService     = platformService;
            this.trackingManager     = trackingManager;
            this.persistenceLayer    = persistenceLayer;

            this.languages = new List <string> {
                " "
            };
            this.languages.AddRange(SupportedCultures.Languages);

            this.clearSearchHistoryCommand   = new RelayCommand(this.ClearSearchHistoryExecute);
            this.openWelcomeScreenCommand    = new RelayCommand(this.OpenWelcomeScreenExecute);
            this.deleteAllCommand            = new RelayCommand(this.DeleteAllExecute);
            this.deleteTasksCommand          = new RelayCommand(this.DeleteTasksExecute);
            this.deleteCompletedTasksCommand = new RelayCommand(this.DeleteCompletedTasksExecute);
            this.completeTasksCommand        = new RelayCommand(this.CompleteTasksExecute);
            this.createBackupCommand         = new RelayCommand(this.CreateBackupExecute);
            this.restoreBackupCommand        = new RelayCommand(this.RestoreBackupExecute);
            this.sortFoldersCommand          = new RelayCommand(() => this.SortElements(SortType.Folders));
            this.sortSmartViewsCommands      = new RelayCommand(() => this.SortElements(SortType.SmartViews));
            this.sortContextsCommand         = new RelayCommand(() => this.SortElements(SortType.Contexts));
            this.sortTagsCommand             = new RelayCommand(() => this.SortElements(SortType.Tags));

            string language = this.Workbook.Settings.GetValue <string>(CoreSettings.OverrideLanguage);

            if (!string.IsNullOrEmpty(language))
            {
                this.selectedLanguage = SupportedCultures.GetLanguageNameFromCode(language);
                this.previousLanguage = this.selectedLanguage;
            }

            this.sendAnalytics = this.Workbook.Settings.GetValue <bool>(CoreSettings.SendAnalytics);
        }