/// <summary> /// Prepares the search and then runs it. /// </summary> /// <param name="request">The search request to action</param> /// <param name="search">The search to run</param> private void prepareAndSearch(ISearchRequest request, ISearch search) { updateStatus("Determining which files to search..."); updateDocument(flowResults, "Determining which files to search..."); setChangedStatus(false); if (!request.IsPrepared) { request.Prepare(); } string displayString = string.Format("Searching {0} {1} ...", searchRequest.Urls.Count, searchRequest.Urls.Count == 1 ? "file" : "files"); updateDocument(flowResults, displayString); updateStatus(displayString); if (!cancellingSearch) { try { search.Search(request, true); } catch (Exception exception) { cancelRunningSearch(); updateDocument(flowResults, "Search aborted due to error: " + exception.Message); updateStatus("Search aborted due to error: " + exception.Message); } } }