コード例 #1
0
        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));
        }