public async Task <IActionResult> Index() { try { TopRegionViewModel vModelTop = new TopRegionViewModel(); vModelTop = await _operations.GetTopRegionCovid(); return(View(vModelTop)); } catch (Exception ex) { throw; } }
public async Task <TopRegionViewModel> GetTopRegionCovid() { TopRegionViewModel regVM = new TopRegionViewModel(); try { HttpRequestMessage request = api.ApiRegionRequest(); using (var response1 = await client.SendAsync(request)) { response1.EnsureSuccessStatusCode(); string apiResponseStr = await response1.Content.ReadAsStringAsync(); var desRegResponse = JsonConvert.DeserializeObject <RegionResponse.Root>(apiResponseStr.Replace(System.Environment.NewLine, string.Empty)); regVM.regions = desRegResponse.data; List <ReportResponse.Report> lstReportAll = new List <ReportResponse.Report>(); request = api.ApiReportRegRequest(); using (var response2 = await client.SendAsync(request)) { response2.EnsureSuccessStatusCode(); apiResponseStr = await response2.Content.ReadAsStringAsync(); var desRepResponse = JsonConvert.DeserializeObject <ReportResponse.Root>(apiResponseStr.Replace(System.Environment.NewLine, string.Empty)); lstReportAll.AddRange(desRepResponse.data); } var result = (from r in lstReportAll group r by new { r.region.name } into rr select new TopRegion { Region = rr.Key.name, Cases = rr.Sum(s => s.confirmed), Deaths = rr.Sum(s => s.deaths) }).OrderByDescending(s => s.Cases).Take(10); regVM.topRegions = result.ToList(); } } catch (Exception ex) { ex.Message.ToString(); } return(regVM); }