static string FormatDayData(CovidDay day) { string formattedResult = "For " + day.Date.Date.ToShortDateString() + "\n"; formattedResult += "Total Deaths = " + day.Death.ToString() + "\n"; formattedResult += "Death Increase = " + day.DeathIncrease.ToString() + "\n"; formattedResult += "COVID Positive Cases = " + day.Positive.ToString() + "\n"; formattedResult += "COVID Positive Increase = " + day.PositiveIncrease.ToString() + "\n\n"; return(formattedResult); }
public static CountyAnalysis CountyProcess(List <CovidDay> rows) { CovidDay previous = null; var results = new List <AnalysisRow>(); foreach (var row in rows) { var r = new AnalysisRow(); r.Date = row.Date; r.State = row.County.State.StateName; r.County = row.County.CountyName; r.CumulitiveCases = row.Cases; r.CumulitiveDeaths = row.Deaths; if (previous == null) { r.NetNewCases = row.Cases; r.NetNewDeaths = row.Deaths; previous = row; } else { r.NetNewCases = row.Cases - previous.Cases; r.NetNewDeaths = row.Deaths - previous.Deaths; previous = row; } results.Add(r); } CovidDay info = rows.Last(); // loop the 14 most recent days // calculate the average new cases per day for each of the past 14 days int count = 0; for (int i = results.Count - 1; ++count <= 14; i--) { int sum = 0; int innerCount = 0; for (int j = i; ++innerCount <= 14; j--) { sum += results[j].NetNewCases; } int avg = sum / 14; results[i].MovingAvg14DayPer100KCases = Convert.ToInt32(((double)sum / (double)info.County.Population) * 100000); results[i].MovingAvg14DayNetNewCases = avg; } var analysis = new CountyAnalysis(results); analysis.State = info.County.State.StateName; analysis.County = info.County.CountyName; analysis.CumulitiveCases = info.Cases; analysis.CumulitiveDeaths = info.Deaths; if (info.County.Population > 0) { int population = info.County.Population; analysis.Population = population; analysis.ResidentsWithoutCovidTotal = population - info.Cases; double pct = (double)(population - info.Cases) / (double)population; analysis.ResidentsWithoutCovidPercentage = Math.Round(pct, 4) * 100d; } //analysis.Rows = results; return(analysis); }