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); }
/// <summary> /// /// Get the summary user data converted to the user currency. /// /// </summary> /// <param name="user"></param> /// <param name="summaryDto"></param> /// <returns></returns> SummaryDataViewModel IInvestmentsApi.GetSummaryData(ApplicationUser user, UserSummaryDTO summaryDto) { var summaryDvm = new SummaryDataViewModel { InvestmentsBalance = DbExpressions.RoundCustomerBalanceAmount(summaryDto.InvestmentsBalance), TotalInvestments = DbExpressions.RoundCustomerBalanceAmount(summaryDto.TotalInvestments), TotalInvestmentsReturns = DbExpressions.RoundCustomerBalanceAmount(summaryDto.TotalInvestmentsReturns), NextInvestmentOn = DbExpressions.GetNextMonthsFirstWeekday(), LastInvestmentAmount = DbExpressions.RoundCustomerBalanceAmount(summaryDto.LastInvestmentAmount), StatusAsOf = summaryDto.StatusAsOf, LockInDays = summaryDto.LockInDays, EligibleWithdrawDate = summaryDto.EligibleWithdrawDate, OkToWithdraw = summaryDto.OkToWithdraw, Prompt = summaryDto.Prompt, Vintages = summaryDto .Vintages .Select( t => mapper .Map <VintageDto, VintageViewModel>(t)) .ToList(), BegGmBalance = Math.Round(summaryDto.BegGmBalance, 1), EndGmBalance = Math.Round(summaryDto.EndGmBalance, 1), Deposits = Math.Round(summaryDto.Deposits, 1), GmGainLoss = Math.Round(summaryDto.GmGainLoss, 1), Withdrawals = Math.Round(summaryDto.Withdrawals, 1), CashBonus = Math.Round(summaryDto.CashBonus, 1) }; foreach (var vm in summaryDvm.Vintages) { vm.InvestmentAmount = DbExpressions.RoundCustomerBalanceAmount(vm.InvestmentAmount); vm.SellingValue = DbExpressions.RoundCustomerBalanceAmount(vm.SellingValue); } return(summaryDvm); }
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); }