private async void OnSearch() { mainViewModel.WindowEnabled = false; try { await Task.Factory.StartNew(() => { SearchResult = index.Search(SearchQuery, SearchOptions.SearchOptions); }); SearchResults.Clear(); try { foreach (var result in SearchResult) { var resultVM = new FoundDocumentViewModel(this, result); SearchResults.Add(resultVM); } mainViewModel.AddLogEntry( "Search result: " + SearchResult.OccurrenceCount + " occurrences in " + SearchResult.DocumentCount + " documents."); } catch (Exception e) { mainViewModel.AddLogEntry(e.Message); } } finally { mainViewModel.WindowEnabled = true; } }
private async void SetSelectedDocument(FoundDocumentViewModel value) { mainViewModel.WindowEnabled = false; try { if (selectedDocument != value) { if (selectedDocument != null) { selectedDocument.Unload(); } selectedDocument = value; if (selectedDocument != null) { await selectedDocument.LoadAsync(); } } NotifyPropertyChanged(nameof(SelectedDocument)); NotifyPropertyChanged(nameof(HasSelectedDocument)); NavigateToPreviousCommand.NotifyCanExecuteChanged(); NavigateToNextCommand.NotifyCanExecuteChanged(); } finally { mainViewModel.WindowEnabled = true; } }