Ejemplo n.º 1
0
        public static IEnumerable <InlineQueryResult> Convert(IWebSearchResult searchResult)
        {
            var result = new List <InlineQueryResult>();
            var bingWebSearchResult = (SearchResult)searchResult.Result;

            result.AddRange(ConvertWebPagesToInlineQueryResultArticle(bingWebSearchResult.WebPages));
            result.AddRange(ConvertImagesToInlineQueryResultPhoto(bingWebSearchResult.Images));
            result.AddRange(ConvertVideosToInlineQueryResultVideo(bingWebSearchResult.Videos));
            return(result);
        }
Ejemplo n.º 2
0
        public static IEnumerable <InlineQueryResult> Convert(IWebSearchResult webSearchResult)
        {
            switch (webSearchResult.SearchEngine)
            {
            case SearchEngine.Google:
                return(GoogleWebSearchResultToInlineQueryConverter.Convert(webSearchResult));

            case SearchEngine.Bing:
                return(BingWebSearchResultToInlineQueryConverter.Convert(webSearchResult));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public static IEnumerable <InlineQueryResult> Convert(IWebSearchResult searchResult)
        {
            var searchItems = (IEnumerable <Result>)searchResult.Result;

            return(searchItems.Select(searchItem => new InlineQueryResultArticle
            {
                Id = Guid.NewGuid().ToString(),
                Description = searchItem.Snippet,
                Url = searchItem.Link,
                ThumbUrl = searchItem.Image?.ThumbnailLink,
                Title = searchItem.Title,
                InputMessageContent = new InputTextMessageContent
                {
                    MessageText = searchItem.Link
                }
            }).Cast <InlineQueryResult>().ToList());
        }
        /// <summary>
        /// Handles the SelectionChanged event of the listBoxResults control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.Windows.Controls.SelectionChangedEventArgs"/> instance containing the event data.</param>
        private void listBoxResults_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            IWebSearchResult searchResult = (listBoxResults.SelectedItem as IWebSearchResult);

            StatusWindow statusWindow = new StatusWindow();

            try
            {
                statusWindow.Owner = this;
            }
            catch { }
            statusWindow.Line1 = string.Format(Properties.Resources.StatusSearchingOnline, searchResult.Title);
            statusWindow.Line2 = string.Format(Properties.Resources.StatusSearchingContent, searchResult.Title);

            Thread searchThread = new Thread(new ThreadStart(delegate
            {
                try
                {
                    Dispatcher.Invoke((Action) delegate { IsEnabled = false; statusWindow.Show(); });
                    IWebMovieDetails details = searchResult.LoadDetails();
                    Dispatcher.Invoke((Action) delegate { SelectedDetails = details; });
                }
                catch (Exception exp)
                {
                    TaskDialog.MessageBox(Properties.Resources.TaskDialogOnlineSearchExceptionTitle, string.Format(Properties.Resources.TaskDialogOnlineSearchExceptionMain, searchResult.Title),
                                          Properties.Resources.TaskDialogOnlineSearchExceptionText, exp.ToString(), string.Empty, string.Empty, TaskDialogButtons.OK, TaskDialogIcons.Error, TaskDialogIcons.Error);
                }
                finally { Dispatcher.Invoke((Action) delegate { statusWindow.Close(); IsEnabled = true; }); }
            }));

            searchThread.Name             = "Searching Online";
            searchThread.IsBackground     = true;
            searchThread.CurrentCulture   = Thread.CurrentThread.CurrentCulture;
            searchThread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture;
            searchThread.Start();
        }