Ejemplo n.º 1
0
        public IActionResult VerifyAccount(DepositOrWithdrawViewModel model)
        {
            if (model.AccountId is null)
            {
                return(Json($"Please specify an account"));
            }
            if (_bankRepository.GetAccount(model.AccountId.Value) is null)
            {
                return(Json($"Account #{model.AccountId} does not exist."));
            }

            return(Json(true));
        }
Ejemplo n.º 2
0
        public IActionResult DepositOrWithdraw(DepositOrWithdrawViewModel model)
        {
            if (VerifyAccount(model) is JsonResult json && json.Value is string error)
            {
                ModelState.AddModelError(nameof(model.AccountId), error);
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            Account account = _bankRepository.GetAccount(model.AccountId ?? 0);

            try
            {
                switch (model.Submit)
                {
                case DepositOrWithdrawViewModel.SubmitType.Deposit:
                    account.Deposit(model.Amount);
                    break;

                case DepositOrWithdrawViewModel.SubmitType.Withdraw:
                    account.Withdraw(model.Amount);
                    break;
                }

                ViewData["DepositOrWithdrawSucces"] = true;
            }

            catch (Exception e)
            {
                ModelState.AddModelError(nameof(model.Amount), e.Message);
            }

            return(View(model));
        }