public List <CovidUSCaseCountDADto> FetchUSCasesFromAPI(Metrics metrics, Locations locations)
        {
            WebRequest request = WebRequest.Create(configuration.GetSection("AppSettings")["covidConfirmedCases_USAPI"]);

            if (metrics == Metrics.DEATHS && locations == Locations.US)
            {
                request = WebRequest.Create(configuration.GetSection("AppSettings")["covidDeaths_USAPI"]);
            }
            request.Method = "GET";
            WebResponse  response     = request.GetResponse();
            Stream       dataStream   = response.GetResponseStream();
            StreamReader readerStream = new StreamReader(dataStream);

            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            string responseFromServer = readerStream.ReadToEnd();

            response.Close();
            TextReader reader    = new StringReader(responseFromServer);
            CsvReader  csvReader = new CsvReader(reader, CultureInfo.InvariantCulture);
            dynamic    records   = csvReader.GetRecords <dynamic>();
            List <CovidUSCaseCountBLDto> bLLCaseCountRecords = new List <CovidUSCaseCountBLDto>();
            Date   latestDate        = covidDataRepository.GetLastUpdateDate(metrics.ToDALMetrics(), locations.ToDALocations()).Date;
            string combinedKeyHolder = "";

            foreach (var rec in records)
            {
                foreach (var count in rec)
                {
                    CovidUSCaseCountBLDto caseRecord = new CovidUSCaseCountBLDto();
                    if (count.Key != "UID" && count.Key != "iso2" && count.Key != "iso3" && count.Key != "code3" &&
                        count.Key != "FIPS" && count.Key != "Admin2" && count.Key != "Province_State" && count.Key != "Country_Region" &&
                        count.Key != "Lat" && count.Key != "Long_" && count.Key == "Combined_Key")
                    {
                        caseRecord.Combined_Key = count.Value;
                        if (caseRecord.Combined_Key != null)
                        {
                            combinedKeyHolder = caseRecord.Combined_Key;
                        }
                    }
                    else if (count.Key != "UID" && count.Key != "iso2" && count.Key != "iso3" && count.Key != "code3" &&
                             count.Key != "FIPS" && count.Key != "Admin2" && count.Key != "Province_State" && count.Key != "Country_Region" &&
                             count.Key != "Lat" && count.Key != "Long_" && count.Key != "Combined_Key" && count.Key != "Population" &&
                             DateTime.Compare(DateTime.ParseExact(count.Key, "M/d/yy", System.Globalization.CultureInfo.InvariantCulture), latestDate) > 0)
                    {
                        if (combinedKeyHolder != null)
                        {
                            caseRecord.Combined_Key = combinedKeyHolder;
                            caseRecord.Date         = DateTime.ParseExact(count.Key, "M/d/yy", System.Globalization.CultureInfo.InvariantCulture);
                            caseRecord.Count        = Convert.ToInt32(count.Value);
                            bLLCaseCountRecords.Add(caseRecord);
                        }
                    }
                }
            }
            var dALCaseCountRecords = Utilities.MapUSCaseCountsBLDTOtoDADTO(bLLCaseCountRecords);

            return(dALCaseCountRecords);
        }
 public static CovidUSCaseCountDADto ToUSCaseCountstDADto(this CovidUSCaseCountBLDto rec)
 {
     return(new CovidUSCaseCountDADto
     {
         Combined_Key = rec.Combined_Key,
         Date = rec.Date,
         Count = rec.Count
     });
 }