public BudgetSummary GetBudgetSummary(IncomeAndExpenditure incomeAndExpenditure, Guid lowellReferenceSurrogateKey, string loggedInUserId) { var monthlyIncome = _calculatorService.CalculateMonthlyIncome(incomeAndExpenditure); var monthlyExpenses = _calculatorService.CalculateMonthlyOutgoings(incomeAndExpenditure); var disposableIncome = _calculatorService.CalculateDisposableIncome(monthlyIncome.Total, monthlyExpenses.Total); var budgetSummary = CreateBudgetSummary(monthlyIncome, monthlyExpenses, disposableIncome, incomeAndExpenditure, string.IsNullOrEmpty(loggedInUserId)); return(budgetSummary); }
public async Task <IActionResult> Expenditure(ExpendituresVm viewModel) { var id = RouteData.Values["id"]; if (id == null) { return(RedirectToAction("Index", "MyAccounts")); } Guid guid = Guid.Parse(id.ToString()); ApplicationSessionState.CheckSessionStatus(id.ToString()); viewModel.EnabledPartialSave = _portalSettings.Features.EnablePartialSave && LoggedInUser.IsLoggedInUser; IncomeAndExpenditure iAndE = ApplicationSessionState.GetIncomeAndExpenditure(guid); var guideLines = await _triggerFigureService.GetExpenditureMetrics(ApplicationSessionState); var foodAndHousekeepingTrigger = _triggerFigureService.CalculateTriggerFigure(guideLines.FoodAndHousekeeping, iAndE.AdultsInHousehold, iAndE.ChildrenUnder16, iAndE.Children16to18); var personalCostsTrigger = _triggerFigureService.CalculateTriggerFigure(guideLines.PersonalCosts, iAndE.AdultsInHousehold, iAndE.ChildrenUnder16, iAndE.Children16to18); var communicationsAndLeisureTrigger = _triggerFigureService.CalculateTriggerFigure(guideLines.CommsAndLeisure, iAndE.AdultsInHousehold, iAndE.ChildrenUnder16, iAndE.Children16to18); viewModel = _mapper.Map(iAndE, viewModel); viewModel.FoodAndHouseKeepingTriggerMin = _triggerFigureService.CalculateMinTriggerValue(foodAndHousekeepingTrigger); viewModel.FoodAndHouseKeepingTriggerMax = _triggerFigureService.CalculateMaxTriggerValue(foodAndHousekeepingTrigger); viewModel.PersonalCostsTriggerMin = _triggerFigureService.CalculateMinTriggerValue(personalCostsTrigger); viewModel.PersonalCostsTriggerMax = _triggerFigureService.CalculateMaxTriggerValue(personalCostsTrigger); viewModel.CommunicationsAndLeisureTriggerMin = _triggerFigureService.CalculateMinTriggerValue(communicationsAndLeisureTrigger); viewModel.CommunicationsAndLeisureTriggerMax = _triggerFigureService.CalculateMaxTriggerValue(communicationsAndLeisureTrigger); string employmentStatus = iAndE.EmploymentStatus; string housingStatus = iAndE.HousingStatus; decimal income = viewModel.IncomeVmSummary.Total; decimal totalExpenditure = viewModel.OutgoingsVmSummary.Total; decimal disposableIncome = _calculatorService.CalculateDisposableIncome(income, totalExpenditure); _gtmService.RaiseBudgetCalculatorExpenditureEvent(viewModel, LoggedInUserId, employmentStatus, housingStatus, income, totalExpenditure, disposableIncome); return(View(viewModel)); }