//GET: Loan/CreateLoan
        //  Loan/CreateLoanCalc?degreeId=2&schoolId=5
        public async Task <ActionResult> CreateLoanCalc(int degreeId, int schoolId)
        {
            var user = await GetCurrentUserAsync();

            var Degreeschool = await _context.DegreeSchool
                               .Include(ds => ds.Degree)
                               .Include(ds => ds.School)
                               .FirstOrDefaultAsync(ds => ds.DegreeId == degreeId && ds.SchoolId == schoolId);

            var totalSchoolCost        = Degreeschool.TotalCost;
            var degreeName             = Degreeschool.Degree.EducationName;
            var schoolName             = Degreeschool.School.SchoolName;
            var degreesSchoolId        = Degreeschool.Id;
            var LoanWorkbenchViewModel = new LoanWorkbenchViewModel()
            {
                SchoolId        = schoolId,
                DegreeId        = degreeId,
                TotalSchoolCost = totalSchoolCost,
                DegreeName      = degreeName,
                SchoolName      = schoolName,
                DegreeSchoolId  = degreesSchoolId,
            };

            return(View(LoanWorkbenchViewModel));
        }
        public async Task <IActionResult> CreateLoanCalc(int degreeId, int schoolId, LoanWorkbenchViewModel loanViewModel)

        {
            try
            {
                var user = await GetCurrentUserAsync();

                var Degreeschool = await _context.DegreeSchool
                                   .Include(ds => ds.Degree)
                                   .Include(ds => ds.School)
                                   .FirstOrDefaultAsync(ds => ds.DegreeId == loanViewModel.DegreeId && ds.SchoolId == loanViewModel.SchoolId);


                var totalSchoolCost      = Degreeschool.TotalCost;
                var futureCareerEarnings = (Degreeschool.Degree.EarningAvg * 20);

                // Define variables to help calculate the loan payments
                var loanAmount                 = (totalSchoolCost - (loanViewModel.CashPaid + loanViewModel.Grants + loanViewModel.Scholarships));
                var rateOfInterest             = (loanViewModel.LoanRate / 100) / 12;
                var numberOfPayments           = loanViewModel.LoanLengthYears * 12;
                var loanPayment                = (loanAmount * rateOfInterest) / (1 - Math.Pow(1 + rateOfInterest, numberOfPayments * -1));
                var totalLoanPayments          = loanPayment * numberOfPayments;
                var totalCashGrantScholarships = loanViewModel.CashPaid + loanViewModel.Grants + loanViewModel.Scholarships;
                var totalAmountPaid            = totalLoanPayments + totalCashGrantScholarships;
                var benefitCostRatio           = futureCareerEarnings / totalAmountPaid;
                var loan = new Loan()


                {
                    FutureCareerEarnings = futureCareerEarnings,
                    TotalSchoolCost      = totalSchoolCost,
                    CashPaid             = loanViewModel.CashPaid,
                    Grants                   = loanViewModel.Grants,
                    Scholarships             = loanViewModel.Scholarships,
                    LoanAmount               = loanAmount,
                    LoanRate                 = loanViewModel.LoanRate,
                    LoanLengthYears          = loanViewModel.LoanLengthYears,
                    LoanLengthMonths         = loanViewModel.LoanLengthYears * 12,
                    LoanPayment              = loanPayment,
                    FinWorkBenchStep         = loanViewModel.FinWorkBenchStep,
                    ApplicationUserId        = user.Id,
                    DegreeSchoolId           = Degreeschool.Id,
                    TotalLoanPayments        = totalLoanPayments,
                    TotalAmountPaid          = totalAmountPaid,
                    BenefitCostAnalysisRatio = Convert.ToInt32(benefitCostRatio)
                };

                _context.Loan.Add(loan);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(BCAIndex)));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
        //GET: Loan/CreateLoan
        public ActionResult CreateLoan(int degreeId, int schoolId)
        {
            var LoanWorkbenchViewModel = new LoanWorkbenchViewModel()
            {
                SchoolId = schoolId,
                DegreeId = degreeId
            };

            return(View(LoanWorkbenchViewModel));
        }
        // GET: Loan/Edit/5
        // This the Add Notes Update Notes
        public async Task <ActionResult> Edit(int id)
        {
            var user = await GetCurrentUserAsync();

            var viewModel = new LoanWorkbenchViewModel();
            var loan      = await _context.Loan.FirstOrDefaultAsync(l => l.Id == id);

            if (loan.ApplicationUserId != user.Id)
            {
                return(NotFound());
            }


            return(View(viewModel));
        }