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