public async Task <IActionResult> BudgetSummary()
        {
            var id = RouteData.Values["id"];

            if (id == null)
            {
                return(RedirectToAction("Index", "MyAccounts"));
            }

            ApplicationSessionState.CheckSessionStatus(id.ToString());
            Guid guid = Guid.Parse(id.ToString());

            IncomeAndExpenditure incomeAndExpenditure = ApplicationSessionState.GetIncomeAndExpenditure(guid);
            string lowellReference = ApplicationSessionState.GetLowellReferenceFromSurrogate(guid);

            var budgetSummary = GetBudgetSummary(incomeAndExpenditure, guid);

            if (budgetSummary != null && incomeAndExpenditure != null)
            {
                string employmentStatus = incomeAndExpenditure.EmploymentStatus;
                string housingStatus    = incomeAndExpenditure.HousingStatus;

                _gtmService.RaiseBudgetCalculatorCompletedEvent(budgetSummary, LoggedInUserId, employmentStatus, housingStatus);
            }

            if (LoggedInUser.IsLoggedInUser && incomeAndExpenditure.BudgetSource != "MyBudget Tool")
            {
                await SaveBudgetSummary(incomeAndExpenditure, lowellReference);

                budgetSummary.IsSaved = true;
            }

            if (incomeAndExpenditure.BudgetSource == "MyBudget Tool" && incomeAndExpenditure.IncomeTotal <= 0)
            {
                return(RedirectToAction("ZeroIncome"));
            }
            else if (incomeAndExpenditure.BudgetSource == "MyBudget Tool")
            {
                budgetSummary.IsSaved = true;
            }

            budgetSummary.ExternallyLaunched = ApplicationSessionState.IandELaunchedExternally;
            budgetSummary.BudgetSource       = incomeAndExpenditure.BudgetSource ?? "Budget Calculator";

            return(View(budgetSummary));
        }