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;
            }
        }