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)); }
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)); }