Example #1
0
        internal async System.Threading.Tasks.Task SearchSpecificInput(IAlfredInput i_Input)
        {
            await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            AlfredWindowControl content = Content as AlfredWindowControl;
            await content.SearchSpecificInputAsync(i_Input);
        }
        private async System.Threading.Tasks.Task SearchAsync(IAlfredInput i_Input)
        {
            await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            setAlfredWindowForNewSearch(i_Input);

            if (!m_HistorySearchesViewModel.HistorySearches.Contains(searchComboBox.Text))
            {
                m_HistorySearchesViewModel.HistorySearches.Insert(0, searchComboBox.Text);
            }

            try
            {
                await AlfredEngine.Instance.SearchAsync(i_Input);

                searchIsFinished();
            }
            catch (WebException)
            {
                noInternetConnection();
            }
            catch (OperationCanceledException)
            {
                timeoutExpired();
            }
            catch (Exception)
            {
                unexpectedError();
            }
        }
        private void setAlfredWindowForNewSearch(IAlfredInput i_Input)
        {
            searchingImage.IsEnabled     = true;
            searchingImage.Visibility    = Visibility.Visible;
            notSearchingImage.Visibility = Visibility.Hidden;
            resultsListView.Items.Clear();
            searchComboBox.Text        = i_Input.Description;
            searchingForTextBlock.Text = "Searching...";

            m_SortedRankArray.RemoveRange(0, m_SortedRankArray.Count);
        }
Example #4
0
        public async Task <AlfredResponse> SearchAsync(IAlfredInput i_Input)
        {
            m_TimeoutTimer.Enabled = true;
            PagesList.Clear();
            GoogleSearchEngine.Instance.ClearResults();

            m_CancellationTokenSource?.Dispose();
            m_CancellationTokenSource = new CancellationTokenSource();

            try
            {
                if (i_Input.ProjectType != null)
                {
                    await GoogleSearchEngine.Instance.AddSearchResultsFromQueryAsync(String.Format("site: {0} {1} {2}",
                                                                                                   r_WebSitesUrls[eWebSite.Stackoverflow], i_Input.Description, i_Input.ProjectType));
                }
                await GoogleSearchEngine.Instance.AddSearchResultsFromQueryAsync(String.Format("site: {0} {1}",
                                                                                               r_WebSitesUrls[eWebSite.Stackoverflow], i_Input.Description));

                await GoogleSearchEngine.Instance.AddSearchResultsFromQueryAsync(String.Format("site: {0} \"{1}\"",
                                                                                               r_WebSitesUrls[eWebSite.Microsoft], i_Input.ErrorCode));

                await Task.Run(() => CreateWebDataListFromGoogleResultsAsync(m_CancellationTokenSource.Token), m_CancellationTokenSource.Token);
            }
            catch (WebException)
            {
                StopSearch();
                throw new WebException("No internet connection");
            }
            catch (OperationCanceledException)
            {
                StopSearch();
                throw new OperationCanceledException("Operation canceled - timeout expired");
            }
            catch (Exception)
            {
                StopSearch();
                throw new WebException("Uunexpected error");
            }

            return(Response);
        }
 public async System.Threading.Tasks.Task SearchSpecificInputAsync(IAlfredInput i_Input)
 {
     await SearchAsync(i_Input);
 }