public async void ProcessHopkinsData() { Status = "Loading John Hopkins Data"; var jhFiles = await jhFolder.GetFilesAsync(); jhStateData.Clear(); // set up all the states with all the dates foreach (StorageFile file in jhFiles) { if (file.FileType.Contains("csv")) { var stream = await file.OpenStreamForReadAsync(); using (var reader = new StreamReader(stream)) { using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { var rawData = new List <RawJhState>(); csv.Read(); csv.ReadHeader(); while (csv.Read()) { var tests = csv[11]; var Province_State = csv.GetField("Province_State"); var Country_Region = csv.GetField("Country_Region"); var Last_Update = csv.GetField("Last_Update"); var Lat = Double.TryParse(csv.GetField("Lat"), out double lat) ? lat : 0; var Long_ = Double.TryParse(csv.GetField("Long_"), out double lon) ? lon : 0; var Confirmed = Int32.TryParse(csv.GetField("Confirmed"), out int con) ? con : 0; var Deaths = Int32.TryParse(csv.GetField("Deaths"), out int d) ? d : 0; var Recovered = Int32.TryParse(csv.GetField("Recovered"), out int rec) ? rec : 0; var Active = Int32.TryParse(csv.GetField("Active"), out int activ) ? activ : 0; var FIPS = Int32.TryParse(csv.GetField("FIPS"), out int fips) ? fips : 0; var Incident_Rate = Double.TryParse(csv.GetField("Incident_Rate"), out double incident) ? incident : 0; var People_Tested = Int32.TryParse(csv[11], out int test) ? test : 0; var People_Hospitalized = Int32.TryParse(csv.GetField("People_Hospitalized"), out int hosp) ? hosp : 0; var Mortality_Rate = Double.TryParse(csv[13], out double mort) ? mort : 0; var UID = Int32.TryParse(csv.GetField("UID"), out int uid) ? uid : 0; var ISO3 = csv.GetField("ISO3"); var Testing_Rate = Double.TryParse(csv.GetField("Testing_Rate"), out double testrate) ? testrate : 0; //var Hospitalization_Rate = Double.TryParse(csv.GetField("Hospitalization_Rate"), out double hosprate) ? hosprate : 0; var newDay = new RawJhState() { Province_State = Province_State, Country_Region = Country_Region, Last_Update = Last_Update, Lat = Lat, Long_ = Long_, Confirmed = Confirmed, Deaths = Deaths, Recovered = Recovered, Active = Active, FIPS = FIPS, Incident_Rate = Incident_Rate, People_Tested = People_Tested, People_Hospitalized = People_Hospitalized, Mortality_Rate = Mortality_Rate, UID = UID, ISO3 = ISO3, Testing_Rate = Testing_Rate, //Hospitalization_Rate = Hospitalization_Rate }; rawData.Add(newDay); } foreach (RawJhState rjhs in rawData) { if (jhStateData.FirstOrDefault(st => st.StateString == rjhs.Province_State) == null) { jhStateData.Add(new JhState(rjhs.Province_State)); } JhCovidDay covidDay = new JhCovidDay(rjhs, file.Name); jhStateData.FirstOrDefault(st => st.StateString == rjhs.Province_State).CovidData.Add(covidDay); } } } } } jhStateData.RemoveAll(jhs => jhs.State == null); jhStateData = PerformStateSortByRegion(jhStateData); Status = "Processing Johns Hopkins Data"; ProcessedJhStateData.Clear(); List <Metrics> metrics = new List <Metrics>() { Metrics.Deaths, Metrics.Tests, Metrics.Cases, Metrics.PercentPositive }; foreach (JhState state in jhStateData) { if (state?.State != null) { var processedJhState = new ProcessedJhState(state); var rollAverage = Int32.TryParse(RollingAverage, out int rollingAvg) ? rollingAvg : 7; if (rollAverage == 0) { rollAverage = 7; } processedJhState.ProcessDailyData(metrics, true, rollAverage); //processedJhState.ProcessDailyData(metrics, false, rollAverage); processedJhState.ProcessCumulativeData(metrics); ProcessedJhStateData.Add(processedJhState); } } ExportHopkinsData(); }