private static async Task ExecuteQuery(IFinder finder, URLClassifier classifier, string query) { try { var urls = await finder.FindSuggestions(query); var entityFinder = new EntityFinder(); Console.WriteLine("============ Web searches"); var classificationTasks = urls .Select(url => classifier.ClassifyOutletDescription(ExtractDomain(url))) .ToArray(); var classifications = await Task.WhenAll(classificationTasks); for (int i = 0; i < urls.Count; i++) { Console.WriteLine($" [{classifications[i].BiasType}] ({ExtractDomain(urls[i])}) {urls[i]}"); } Console.WriteLine(); Console.WriteLine("=========== Entities"); var entities = await entityFinder.GetEntities(query); foreach (var entity in entities) { var entityName = entityFinder.ExtractEntityName(entity); var wikiUrl = entityFinder.ExtractEntityWikiUrl(entity); var politifactPersona = entityFinder.GetPolitifactPersona(entity); var politifactStr = politifactPersona != null ? politifactPersona.GetFullUrl() : "none found"; var party = politifactPersona != null ? "(" + politifactPersona.Party + ")" : ""; Console.WriteLine($" '{entityName}' {party}"); Console.WriteLine($" - wiki: {wikiUrl}"); Console.WriteLine($" - politifact: {politifactStr}"); if (politifactPersona != null) { Console.WriteLine($" - recent statements:"); var statements = await politifactPersona.FetchRecentStatements(); foreach (var grp in statements.GroupBy(s => s.Ruling).OrderByDescending(grp => grp.Count())) { Console.WriteLine($" - {grp.Key}: {grp.Count()}"); } } } } catch (WebException e) { var errorMessage = e.Response != null ? await CognitiveServicesFinder.ReadAllAsync(e.Response.GetResponseStream()) : e.Message; Console.WriteLine(errorMessage); } }
private static void ExecuteQuery(IFinder finder, string query) { try { var list = finder.FindSuggestions(query).GetAwaiter().GetResult(); foreach (var url in list) { Console.WriteLine(url); } } catch (WebException e) { Console.WriteLine(BingV5Finder.ReadAllAsync(e.Response.GetResponseStream()).GetAwaiter().GetResult()); } }