示例#1
0
        /// <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);
                }
            }
        }