public async Task <IActionResult> Index()
        {
            try
            {
                TopRegionViewModel vModelTop = new TopRegionViewModel();
                vModelTop = await _operations.GetTopRegionCovid();

                return(View(vModelTop));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Beispiel #2
0
        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);
        }