private void WriteFiles(CaseType caseType, DistrictsScenario scenario, IDictionary <string, List <int> > dict) { List <string> lines = new List <string>(); foreach (string key in dict.Keys) { string line = ""; Console.Write(key + " "); line = line + (key + ","); foreach (int i in dict[key]) { Console.Write(i + ","); line = line + (i + ","); } Console.WriteLine(); //lines.Add(""); lines.Add(line); } using (StreamWriter op = new StreamWriter("districs_data_" + caseType.ToString().ToLower() + "_" + scenario.name + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".csv")) { foreach (string line in lines) { op.WriteLine(line); } op.Flush(); } }
static void Main(string[] args) { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; Districts districts = new Districts(); DistrictsScenario allIndiaTop = new DistrictsScenario { name = "AllIndiaTop", listDistricts = Constants.AllIndiaTopDistricts, listStates = Constants.AllIndiaTopStates }; DistrictsScenario maharashtra = new DistrictsScenario { name = "Maharashtra", listDistricts = Constants.MHAllDistricts, listStates = new List <string> { "Maharashtra" } }; districts.Scenario(allIndiaTop); districts.Scenario(maharashtra); States.ComputeStatesData(); }
public void Scenario(DistrictsScenario scenario) { IDictionary <string, List <int> > dictFatality = new Dictionary <string, List <int> >(); IDictionary <string, List <int> > dictConfirmed = new Dictionary <string, List <int> >(); IDictionary <string, List <double> > dictWeeklyAvgNew = new Dictionary <string, List <double> >(); IDictionary <string, SimpleMovingAverage> dictSMA = new Dictionary <string, SimpleMovingAverage>(); IDictionary <string, List <double> > dictWeeklyAvgNewDeaths = new Dictionary <string, List <double> >(); IDictionary <string, SimpleMovingAverage> dictSMADeaths = new Dictionary <string, SimpleMovingAverage>(); foreach (string district in scenario.listDistricts) { dictFatality.Add(district, new List <int>()); dictConfirmed.Add(district, new List <int>()); dictWeeklyAvgNew.Add(district, new List <double>()); dictSMA.Add(district, new SimpleMovingAverage(7)); dictWeeklyAvgNewDeaths.Add(district, new List <double>()); dictSMADeaths.Add(district, new SimpleMovingAverage(7)); } if (scenario.listDistricts.Contains("Ahmedabad")) { for (int i = 0; i < 11; i++) { dictFatality["Ahmedabad"].Add(0); dictConfirmed["Ahmedabad"].Add(0); } } if (scenario.listDistricts.Contains("Raigad")) { for (int i = 0; i < 11; i++) { dictFatality["Raigad"].Add(0); dictConfirmed["Raigad"].Add(0); } } foreach (string state in scenario.listStates) { var entry = rawJson["districtsDaily"][state]; foreach (string district in scenario.listDistricts) { if (entry[district] != null) { if (district == "Unknown" && state != "Delhi") { continue; } int numDays = entry[district].Count(); for (int i = 0; i < numDays; i++) { var e = entry[district][i]; int entryDeceasedDistrictCurrent = int.Parse(e["deceased"].ToString()); int entryConfirmedDistrictCurrent = int.Parse(e["confirmed"].ToString()); if (dictFatality[district].Count() == 0) { dictSMADeaths[district].addData(entryDeceasedDistrictCurrent); } else { dictSMADeaths[district].addData(entryDeceasedDistrictCurrent - dictFatality[district].Last()); } dictWeeklyAvgNewDeaths[district].Add(dictSMADeaths[district].getMean()); dictFatality[district].Add(entryDeceasedDistrictCurrent); if (dictConfirmed[district].Count() == 0) { dictSMA[district].addData(entryConfirmedDistrictCurrent); } else { dictSMA[district].addData(entryConfirmedDistrictCurrent - dictConfirmed[district].Last()); } dictWeeklyAvgNew[district].Add(dictSMA[district].getMean()); dictConfirmed[district].Add(entryConfirmedDistrictCurrent); } } } } WriteFiles(CaseType.Confirmed, scenario, dictConfirmed); WriteFiles(CaseType.Fatality, scenario, dictFatality); WriteFiles2(CaseType.Confirmed, scenario, dictWeeklyAvgNew); WriteFiles2(CaseType.Fatality, scenario, dictWeeklyAvgNewDeaths); }