public static async Task Main(string[] args) { if (!args.Any()) { Console.WriteLine("Nothing to search for."); return; } RegisterServices(); var scope = _serviceProvider.CreateScope(); MicrosoftDocsSearch searchResults = await scope.ServiceProvider.GetService <Commands>() .RunMicrosoftSearchAsync( string.Join("%20", args).Replace("\"", string.Empty), 3); foreach (var result in searchResults.Results) { Console.WriteLine(result.Title); Console.WriteLine(result.Description); Console.WriteLine($"{result.Url}\n"); } Console.WriteLine($"Do not see what you are looking for? More search results here: {searchResults.NextLink}"); }
public async Task <MicrosoftDocsSearch> GetTopSearchResultsAsync(string terms, int numOfResults = 10) { var queryStrings = new Dictionary <string, string>(); queryStrings.Add("search", terms); queryStrings.Add("locale", "en-us"); queryStrings.Add("$skip", "0"); queryStrings.Add("$top", $"{numOfResults}"); var httpResponse = await _client.GetAsync( new Uri(QueryHelpers.AddQueryString(_client.BaseAddress.ToString(), queryStrings)), HttpCompletionOption.ResponseHeadersRead); try { httpResponse.EnsureSuccessStatusCode(); } catch (Exception) { Console.WriteLine("Uh oh something happened with your search. Try again later."); return(null); } var content = await httpResponse.Content.ReadAsStringAsync(); return(MicrosoftDocsSearch.FromJson(content)); }