internal MainWindowViewModel(
            ModelMetadata modelMetadata,
            ILatestVersionService latestVersionService,
            IMainWindowService mainWindowService,
            ModelViewModel modelViewModel,
            OpenModelViewModel openModelViewModel,
            IOpenModelService openModelService,
            IRecentModelsService recentModelsService,
            IModelMetadataService modelMetadataService,
            IStartInstanceService startInstanceService,
            IModelViewService modelViewService,
            IProgressService progress)
        {
            this.modelMetadata = modelMetadata;

            this.mainWindowService    = mainWindowService;
            this.openModelService     = openModelService;
            this.recentModelsService  = recentModelsService;
            this.modelMetadataService = modelMetadataService;
            this.startInstanceService = startInstanceService;
            this.modelViewService     = modelViewService;
            this.progress             = progress;

            ModelViewModel     = modelViewModel;
            OpenModelViewModel = openModelViewModel;

            modelMetadata.OnChange += (s, e) => Notify(nameof(MainTitle));
            latestVersionService.OnNewVersionAvailable += (s, e) => IsNewVersionVisible = true;
            latestVersionService.StartCheckForLatestVersion();
            SearchItems = new ObservableCollection <SearchEntry>();
            ClearSelectionItems();
        }
        public OpenModelViewModel(
            IOpenModelService openModelService,
            IRecentModelsService recentModelsService)
        {
            this.openModelService    = openModelService;
            this.recentModelsService = recentModelsService;


            RecentFiles = GetRecentFiles();
        }
        public ModelHandlingService(
            IDataService dataService,
            IModelPersistentHandler modelPersistentHandler,
            IModelService modelService,
            ModelMetadata modelMetadata,
            IRecentModelsService recentModelsService,
            IModelNotificationService modelNotificationService,
            IMessage message,
            IProgressService progress,
            ICmd cmd)
        {
            this.dataService              = dataService;
            this.modelPersistentHandler   = modelPersistentHandler;
            this.modelService             = modelService;
            this.modelMetadata            = modelMetadata;
            this.recentModelsService      = recentModelsService;
            this.modelNotificationService = modelNotificationService;
            this.message  = message;
            this.progress = progress;
            this.cmd      = cmd;

            dataService.DataChanged += DataChangedFiles;
        }