public SummaryDataViewModel GetScotlandSummary(int month, int year) { SummaryData dummy = new SummaryData(); List <string> exclussions = new List <string>(); string[] cities = new string[2] { "aberdeen city", "glasgow city" }; exclussions.Add("name"); exclussions.Add("dataCode"); exclussions.Add("type"); dummy.name = "Scotland"; dummy.dataCode = "SC0000001"; dummy.type = "National"; foreach (var prop in dummy.GetType().GetProperties()) { if (!exclussions.Contains(prop.Name)) { prop.SetValue(dummy, 0); } } SummaryDataViewModel allScotland = new SummaryDataViewModel(dummy); List <SummaryDataViewModel> allCouncils = new List <SummaryDataViewModel>(); foreach (string city in cities) { var tempCouncilData = ByName(city); if (tempCouncilData != null) { allCouncils.Add(tempCouncilData.GetSummaryDataForCouncil(month, year)); } } foreach (SummaryDataViewModel council in allCouncils) { if (council != null) { foreach (var prop in council.GetType().GetProperties()) { if (prop.PropertyType == typeof(int)) { prop.SetValue(allScotland, ((int)prop.GetValue(allScotland) + (int)prop.GetValue(council))); } if (prop.PropertyType == typeof(double)) { prop.SetValue(allScotland, ((double)prop.GetValue(allScotland) + (double)prop.GetValue(council))); } } } } return(allScotland); }
public SummaryDataViewModel GetScotlandSummary(int month, int year) { SummaryData dummy = new SummaryData(); List <string> exclussions = new List <string>(); string[] cities = new string[2] { "Aberdeen City", "Glasgow City" }; exclussions.Add("name"); exclussions.Add("dataCode"); exclussions.Add("type"); dummy.name = "Scotland"; dummy.dataCode = "SC0000001"; dummy.type = "National"; foreach (var prop in dummy.GetType().GetProperties()) { if (!exclussions.Contains(prop.Name)) { prop.SetValue(dummy, 0); } } SummaryDataViewModel allScotland = new SummaryDataViewModel(dummy); List <SummaryDataViewModel> allCouncils = new List <SummaryDataViewModel>(); foreach (string city in cities) { allCouncils.Add(GetSummaryDataForCouncil <AberdeenSummary>(city, month, year)); } foreach (SummaryDataViewModel council in allCouncils) { foreach (var prop in council.GetType().GetProperties()) { prop.SetValue(allScotland, ((double)prop.GetValue(allScotland) + (double)prop.GetValue(council)));// <--- Questionable code!!! Start from here } } return(allScotland); }