public void Shutdown() { try { if (_stopCommand.CanExecute(null)) { _stopCommand.Execute(null); } Task.WaitAll(_runningTasks.ToArray()); } catch (AggregateException) { } using (_shellService.SetApplicationBusy()) { foreach (IBlog blog in _managerService.BlogFiles) { if (blog.Dirty) { blog.Save(); } } _managerService.CacheLibraries(); } }
public async Task InitializeAsync() { _crawlerService.ImportBlogsCommand = _importBlogsCommand; _crawlerService.AddBlogCommand = _addBlogCommand; _crawlerService.RemoveBlogCommand = _removeBlogCommand; _crawlerService.ShowFilesCommand = _showFilesCommand; _crawlerService.EnqueueSelectedCommand = _enqueueSelectedCommand; _crawlerService.LoadLibraryCommand = _loadLibraryCommand; _crawlerService.LoadAllDatabasesCommand = _loadAllDatabasesCommand; _crawlerService.LoadArchiveCommand = _loadArchiveCommand; _crawlerService.CheckIfDatabasesCompleteCommand = _checkIfDatabasesCompleteCommand; _crawlerService.AutoDownloadCommand = _autoDownloadCommand; _crawlerService.ListenClipboardCommand = _listenClipboardCommand; _crawlerService.PropertyChanged += CrawlerServicePropertyChanged; ManagerViewModel.ShowFilesCommand = _showFilesCommand; ManagerViewModel.VisitBlogCommand = _visitBlogCommand; ManagerViewModel.VisitBlogOnTumbexCommand = _visitBlogOnTumbexCommand; ManagerViewModel.ShowDetailsCommand = _showDetailsCommand; ManagerViewModel.CopyUrlCommand = _copyUrlCommand; ManagerViewModel.CheckStatusCommand = _checkStatusCommand; ManagerViewModel.PropertyChanged += ManagerViewModelPropertyChanged; ManagerViewModel.QueueItems = QueueManager.Items; QueueManager.Items.CollectionChanged += QueueItemsCollectionChanged; ManagerViewModel.QueueItems.CollectionChanged += ManagerViewModel.QueueItemsCollectionChanged; BlogManagerFinishedLoadingLibrary += OnBlogManagerFinishedLoadingLibrary; BlogManagerFinishedLoadingDatabases += OnBlogManagerFinishedLoadingDatabases; BlogManagerFinishedLoadingArchive += OnBlogManagerFinishedLoadingArchive; _shellService.ContentView = ManagerViewModel.View; // Refresh command availability on selection change. ManagerViewModel.PropertyChanged += (sender, e) => { if (e.PropertyName != nameof(ManagerViewModel.SelectedBlogFile)) { return; } _showFilesCommand.RaiseCanExecuteChanged(); _visitBlogCommand.RaiseCanExecuteChanged(); _visitBlogOnTumbexCommand.RaiseCanExecuteChanged(); _showDetailsCommand.RaiseCanExecuteChanged(); _copyUrlCommand.RaiseCanExecuteChanged(); _checkStatusCommand.RaiseCanExecuteChanged(); }; if (_shellService.Settings.CheckClipboard) { _shellService.ClipboardMonitor.OnClipboardContentChanged += OnClipboardContentChanged; } using (_shellService.SetApplicationBusy()) { await LoadDataBasesAsync(); } }
private void NavigateDirectoryUp() { try { using (shellService.SetApplicationBusy()) { var folder = StorageFolder.GetFolderFromPathAsync(ManagerViewModel.FolderBrowser.CurrentPath).GetResult(); var parent = folder.GetParentAsync().GetResult(); ManagerViewModel.FolderBrowser.CurrentPath = parent != null ? parent.Path : ""; } } catch (Exception) { // This can happen when we have lost the connection to a network drive. ManagerViewModel.FolderBrowser.CurrentPath = ""; } }