Esempio n. 1
0
        public IActionResult CreditApplicationPOST([FromServices] Func <CreditApprovedEnum, ICreditApproved> creditService)
        {
            if (ModelState.IsValid)
            {
                var(validationPassed, errorMessages) = _creditValidator.PassAllValidations(CreditApplication);
                var creditResult = new CreditResult
                {
                    ErrorList = errorMessages,
                    CreditID  = 0,
                    Success   = validationPassed
                };

                if (validationPassed)
                {
                    var creditApprovedEnum = CreditApplication.Salary > 50000 ? CreditApprovedEnum.High : CreditApprovedEnum.Low;
                    CreditApplication.CreditApproved = creditService(creditApprovedEnum).GetCreditApproved(CreditApplication);

                    _unitOfWork.CreditApplicationRepository.Add(CreditApplication);
                    _unitOfWork.Save();
                    creditResult.CreditID       = CreditApplication.Id;
                    creditResult.CreditApproved = CreditApplication.CreditApproved;
                }
                return(RedirectToAction(nameof(CreditResult), creditResult));
            }
            return(View(CreditApplication));
        }
        public async Task <IActionResult> CreditApplicationPOST([FromServices] Func <CreditApprovedEnum, ICreditApproved> _creditService)
        {
            if (ModelState.IsValid)
            {
                var(validationPassed, errorMessages) = await _creditValidator.PassAllValidations(creditModel);

                CreditResult creditResult = new CreditResult()
                {
                    ErrorList = errorMessages,
                    CreditID  = 0,
                    Success   = validationPassed
                };

                if (validationPassed)
                {
                    creditModel.CreditApproved = _creditService(creditModel.Salary > 50000 ?CreditApprovedEnum.High : CreditApprovedEnum.Low).GetCreditApproved(creditModel);

                    _context.CreditApplication.Add(creditModel);
                    _context.SaveChanges();
                    creditResult.CreditID       = creditModel.Id;
                    creditResult.CreditApproved = creditModel.CreditApproved;

                    return(RedirectToAction(nameof(CreditResult), creditResult));
                }
                else
                {
                    return(RedirectToAction(nameof(CreditResult), creditResult));
                }
            }
            else
            {
                return(View(creditModel));
            }
        }
        public async Task <IActionResult> CreditApplicationPOST()
        {
            if (ModelState.IsValid)
            {
                var(validationPassed, errorMessages) = await _creditValidator.PassAllValidations(CreditModel);

                CreditResult creditResult = new CreditResult()
                {
                    ErrorList = errorMessages,
                    CreditID  = 0,
                    Success   = validationPassed
                };
                if (validationPassed)
                {
                    //Add record to database;;
                    return(RedirectToAction(nameof(CreditResult), creditResult));
                }
                else
                {
                    return(RedirectToAction(nameof(CreditResult), creditResult));
                    //return RedirectToAction(nameof(CreditResult), creditResult);
                    //nameof expression prodcuce the name of a varibale,type or member as the stirng constant.
                }
            }
            return(View(CreditModel));
        }
Esempio n. 4
0
        public async Task <IActionResult> CreditApplicationPost(
            [FromServices] Func <CreditApproveType, ICreditApproved> creditService)
        {
            if (ModelState.IsValid)
            {
                var(validationPassed, errorMessages) = await _creditValidator.PassAllValidations(CreditModel);

                CreditResultViewModel creditResultViewModel = new CreditResultViewModel()
                {
                    ErrorList = errorMessages,
                    CreditId  = 0,
                    Success   = validationPassed
                };

                if (validationPassed)
                {
                    CreditModel.CreditApproved =
                        creditService(CreditModel.Salary > 50000 ? CreditApproveType.High : CreditApproveType.Low)
                        .GetCreditApproved(CreditModel);
                    //add record to database
                    //await _db.CreditApplicationModel.AddAsync(CreditModel);
                    //await _db.SaveChangesAsync();
                    _unitOfWork.CreditApplicationRepository.Add(CreditModel);
                    _unitOfWork.Save();

                    creditResultViewModel.CreditId       = CreditModel.Id;
                    creditResultViewModel.CreditApproved = CreditModel.CreditApproved;
                    return(RedirectToAction(nameof(CreditResult), creditResultViewModel));
                }
                else
                {
                    return(RedirectToAction(nameof(CreditResult), creditResultViewModel));
                }
            }
            return(View(CreditModel));
        }