Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }