public IActionResult UrlExpansion(string url, int?page, string?keys, string?isselected) { var identity = (ClaimsIdentity)HttpContext.User.Identity; var judgename = identity.Claims.FirstOrDefault(c => c.Type == "name")?.Value; var email = identity.Claims.FirstOrDefault(c => c.Type == "preferred_username")?.Value; CategoryMatchField urlfields = new CategoryMatchField(UrlJoinHelper.geturlmatchfields(url.ToLower())); string key = urlfields.category + ":" + urlfields.matchfield; List <RootQueryCandidate> qeResponseData = new List <RootQueryCandidate>(); string check = Request.Form["check"]; ViewBag.url = url; HashSet <string> Urls = new HashSet <string> { url }; var Passages = AzureSearchHelper.getPassagesfromUrls(Urls); //List<String> PassageIds = new List<string>(); ViewBag.Url = Passages.FirstOrDefault().Url; ViewBag.PassageTitle = Passages.FirstOrDefault().HtmlHeadTitle; ViewBag.PassageCount = Passages.Count(); ViewBag.Judgename = judgename; ViewBag.Keys = keys; ViewBag.IsSelected = isselected; if (Passages.Count != 0) { if (isselected == "selected") { qeResponseData = _context.getQueryCandidatesByUrl(key).Where(m => m.selectedanswerid != "none").ToList(); } else if (isselected == "none") { qeResponseData = _context.getQueryCandidatesByUrl(key).Where(m => m.selectedanswerid == "none").ToList(); } else { qeResponseData = _context.getQueryCandidatesByUrl(key); } } if (keys != null && qeResponseData.Count > 0) { string[] terms = keys.Split("||"); foreach (var term in terms) { qeResponseData = qeResponseData.Where(q => q.pwquery.Contains(term)).ToList(); } } foreach (var Passage in Passages) { Passage.selectedcount = qeResponseData.Where(x => x.selectedanswerid == Passage.PassageId).Count(); Passage.RootQueries = string.Join(";", Passage.RootQueries.Split(";").Take(5)); } ViewBag.Passages = Passages; //ViewBag.PassageIds = PassageIds; var pageNumber = page ?? 1; // if no page is specified, default to the first page (1) int pageSize = 500; // Get 25 students for each requested page. IPagedList onePageOfQueries = qeResponseData.ToPagedList(pageNumber, pageSize); ViewBag.page = pageNumber; return(View(onePageOfQueries)); }
public static async Task <ResponseData> WebResults(WebSearchClient client, string query, int noAlgos) { ResponseData response = new ResponseData(); try { var webData = await client.Web.SearchAsync(query : query); if (webData?.WebPages?.Value?.Count > 0) { for (int i = 0; i < noAlgos; i++) { var webPagesResult = webData.WebPages.Value[i]; if (webPagesResult != null) { UrlData ud = new UrlData(); ud.bingData.name = webPagesResult.Name; ud.bingData.url = webPagesResult.Url; ud.bingData.snippet = webPagesResult.Snippet; ud.bingData.displayUrl = webPagesResult.DisplayUrl; ud.allPassages = new List <PassageData>(AzureSearchHelper.getPassagesfromUrls(new HashSet <string>() { ud.bingData.url })); response.allUrlDetails.Add(ud); } else { Console.WriteLine("Didn't find any web pages..."); } } } else { Console.WriteLine("Didn't find any web pages..."); } /* * Images * If the search response contains images, the first result's name * and url are printed. */ //if (webData?.Images?.Value?.Count > 0) //{ // // find the first image result // var firstImageResult = webData.Images.Value.FirstOrDefault(); // if (firstImageResult != null) // { // Console.WriteLine("Image Results # {0}", webData.Images.Value.Count); // Console.WriteLine("First Image result name: {0} ", firstImageResult.Name); // Console.WriteLine("First Image result URL: {0} ", firstImageResult.ContentUrl); // } // else // { // Console.WriteLine("Didn't find any images..."); // } //} //else //{ // Console.WriteLine("Didn't find any images..."); //} /* * News * If the search response contains news articles, the first result's name * and url are printed. */ //if (webData?.News?.Value?.Count > 0) //{ // // find the first news result // var firstNewsResult = webData.News.Value.FirstOrDefault(); // if (firstNewsResult != null) // { // Console.WriteLine("\r\nNews Results # {0}", webData.News.Value.Count); // Console.WriteLine("First news result name: {0} ", firstNewsResult.Name); // Console.WriteLine("First news result URL: {0} ", firstNewsResult.Url); // } // else // { // Console.WriteLine("Didn't find any news articles..."); // } //} //else //{ // Console.WriteLine("Didn't find any news articles..."); //} /* * Videos * If the search response contains videos, the first result's name * and url are printed. */ //if (webData?.Videos?.Value?.Count > 0) //{ // // find the first video result // var firstVideoResult = webData.Videos.Value.FirstOrDefault(); // if (firstVideoResult != null) // { // Console.WriteLine("\r\nVideo Results # {0}", webData.Videos.Value.Count); // Console.WriteLine("First Video result name: {0} ", firstVideoResult.Name); // Console.WriteLine("First Video result URL: {0} ", firstVideoResult.ContentUrl); // } // else // { // Console.WriteLine("Didn't find any videos..."); // } //} //else //{ // Console.WriteLine("Didn't find any videos..."); //} } catch (Exception ex) { Console.WriteLine("Encountered exception. " + ex.Message); } return(response); }