public List <CovidCaseCountBLDto> FetchCasesFromFile(Metrics metrics) { //Needs fixing TextReader reader = new StreamReader(path); CsvReader csvReader = new CsvReader(reader, CultureInfo.InvariantCulture); dynamic records = csvReader.GetRecords <dynamic>(); var bALRecords = FetchLocationsFromFile().Item1; var headerRow = FetchLocationsFromFile().Item2; List <CovidCaseCountBLDto> bALCaseCountRecords = new List <CovidCaseCountBLDto>(); int id = 1; Date latestDate = covidDataRepository.GetLastUpdateDate(metrics).Date; foreach (var rec in records) { IDictionary <string, object> caseCounts = rec; foreach (var cases in caseCounts) { if (cases.Key != "State" && cases.Key != "Country" && cases.Key != "Lat" && cases.Key != "Long" && DateTime.Compare((DateTime.ParseExact(cases.Key, "M/d/yy", System.Globalization.CultureInfo.InvariantCulture)), latestDate) > 0) { CovidCaseCountBLDto caseRecord = new CovidCaseCountBLDto { Id = id, Date = DateTime.ParseExact(cases.Key, "M/d/yyyy", System.Globalization.CultureInfo.InvariantCulture), Count = Convert.ToInt32(cases.Value) }; bALCaseCountRecords.Add(caseRecord); } } id++; } return(bALCaseCountRecords); }
public static CovidCaseCountDADto ToCaseCountstDADto(this CovidCaseCountBLDto rec) { return(new CovidCaseCountDADto { dbCompositeKey = rec.dbCompositeKey, Date = rec.Date, Count = rec.Count }); }
public List <CovidCaseCountBLDto> FetchCasesFromAPI(Metrics metrics) { WebRequest request = WebRequest.Create(ConfigurationManager.AppSettings["covidConfirmedCasesAPI"]); if (metrics == Metrics.DEATHS) { request = WebRequest.Create(ConfigurationManager.AppSettings["covidDeathsAPI"]); } else if (metrics == Metrics.RECOVERIES) { request = WebRequest.Create(ConfigurationManager.AppSettings["covidRecoveriesAPI"]); } 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(); //Console.WriteLine(responseFromServer); response.Close(); TextReader reader = new StringReader(responseFromServer); CsvReader csvReader = new CsvReader(reader, CultureInfo.InvariantCulture); dynamic records = csvReader.GetRecords <dynamic>(); List <CovidCaseCountBLDto> bALCaseCountRecords = new List <CovidCaseCountBLDto>(); int id = 1; Date latestDate = covidDataRepository.GetLastUpdateDate(metrics).Date; foreach (var rec in records) { IDictionary <string, object> caseCounts = rec; foreach (var count in caseCounts) { if (count.Key != "Province/State" && count.Key != "Country/Region" && count.Key != "Lat" && count.Key != "Long" && DateTime.Compare(DateTime.ParseExact(count.Key, "M/d/yy", System.Globalization.CultureInfo.InvariantCulture), latestDate) > 0) { CovidCaseCountBLDto caseRecord = new CovidCaseCountBLDto { Id = id, Date = DateTime.ParseExact(count.Key, "M/d/yy", System.Globalization.CultureInfo.InvariantCulture), Count = Convert.ToInt32(count.Value) }; bALCaseCountRecords.Add(caseRecord); } } id++; } return(bALCaseCountRecords); }
public List <CovidCaseCountBLDto> FetchCasesFromAPI(Metrics metrics) { WebRequest request = WebRequest.Create(ConfigurationManager.AppSettings["covidConfirmedCasesAPI"]); if (metrics == Metrics.DEATHS) { request = WebRequest.Create(ConfigurationManager.AppSettings["covidDeathsAPI"]); } else if (metrics == Metrics.RECOVERIES) { request = WebRequest.Create(ConfigurationManager.AppSettings["covidRecoveriesAPI"]); } 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(); //Console.WriteLine(responseFromServer); response.Close(); TextReader reader = new StringReader(responseFromServer); CsvReader csvReader = new CsvReader(reader, CultureInfo.InvariantCulture); dynamic records = csvReader.GetRecords <dynamic>(); List <CovidCaseCountBLDto> bALCaseCountRecords = new List <CovidCaseCountBLDto>(); Date latestDate = covidDataRepository.GetLastUpdateDate(metrics).Date; //IDictionary<string, object> caseCounts = new IDictionary; string csvRecordCompositeKey = ""; int counterKeys = 0; foreach (var rec in records) { //Console.WriteLine(rec); counterKeys = 0; csvRecordCompositeKey = ""; //var a = rec.where(x => x.key == "Country/Region" && x.Value == "Tajikistan").ToList(); foreach (KeyValuePair <string, object> count in rec) { if (count.Key == "Province/State" || count.Key == "Country/Region" || count.Key == "Lat" || count.Key == "Long") { csvRecordCompositeKey += (string)count.Value == "" ? "Null" + "_" : count.Value + "_"; } if (counterKeys > 3) { if (DateTime.Compare(DateTime.ParseExact(count.Key, "M/d/yy", System.Globalization.CultureInfo.InvariantCulture), latestDate) > 0) { CovidCaseCountBLDto caseRecord = new CovidCaseCountBLDto(); caseRecord.Date = DateTime.ParseExact(count.Key, "M/d/yy", System.Globalization.CultureInfo.InvariantCulture); caseRecord.Count = Convert.ToInt32(count.Value); caseRecord.dbCompositeKey = csvRecordCompositeKey.Remove(csvRecordCompositeKey.Length - 1); bALCaseCountRecords.Add(caseRecord); } } counterKeys++; } } return(bALCaseCountRecords); }