public async Task <TopProvinceViewModel> GetTopProvinceCovid(string iso) { TopProvinceViewModel provVM = new TopProvinceViewModel(); List <ReportResponse.Report> lstReportAll = new List <ReportResponse.Report>(); HttpRequestMessage request = api.ApiReportProvRequest(iso); using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); string apiResponseStr = await response.Content.ReadAsStringAsync(); var desRepResponse = JsonConvert.DeserializeObject <ReportResponse.Root>(apiResponseStr.Replace(System.Environment.NewLine, string.Empty)); lstReportAll.AddRange(desRepResponse.data); } var result = (from p in lstReportAll group p by new { p.region.province } into rr select new TopProvince { Province = rr.Key.province, Cases = rr.Sum(s => s.confirmed), Deaths = rr.Sum(s => s.deaths) }).OrderByDescending(s => s.Cases).Take(10); provVM.topProvinces = result.ToList(); return(provVM); }
public async Task <IActionResult> ReportByRegion(string iso) { try { TopProvinceViewModel vModelTop = new TopProvinceViewModel(); vModelTop = await _operations.GetTopProvinceCovid(iso); return(View(vModelTop)); } catch (Exception) { throw; } }