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 }); }