예제 #1
0
        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);
        }
예제 #2
0
        public async Task <IActionResult> ReportByRegion(string iso)
        {
            try
            {
                TopProvinceViewModel vModelTop = new TopProvinceViewModel();
                vModelTop = await _operations.GetTopProvinceCovid(iso);

                return(View(vModelTop));
            }
            catch (Exception)
            {
                throw;
            }
        }