public IActionResult MakeBankAccountPayment([FromBody] BankAccountPaymentCommand command) { var result = _paymentService.MakePayment(command); if (result != PaymentResult.Success) { return(BadRequest(result.GetStringValue())); } return(Ok(result.GetStringValue())); }
public PaymentResult MakePayment(BankAccountPaymentCommand command) { EnsureIsValid(command); var bankAccount = UnitOfWork.BankAccountRepository.Find(command.BankAccountId); if (bankAccount == null) { return(PaymentResult.BankAccountNotFound); } if (bankAccount.Money - command.Amount < 0) { return(PaymentResult.NotEnoughMoney); } bankAccount.Money -= command.Amount; return(PaymentResult.Success); }