private Notification Validation(BankTransferInputDto bankTransfertransfer)
        {
            Notification notification = new Notification();

            if (bankTransfertransfer != null)
            {
                return(notification);
            }
            notification.AddError("Invalid JSON data in request body.");
            return(notification);
        }
        public void PerformTransfer(BankTransferInputDto bankTransfer)
        {
            Notification notification = Validation(bankTransfer);

            if (notification.HasErrors())
            {
                throw new ArgumentException(notification.ErrorMessage());
            }

            BankAccount originAccount      = _unitOfWork.BankAccounts.GetByNumber(bankTransfer.FromAccountNumber);
            BankAccount destinationAccount = _unitOfWork.BankAccounts.GetByNumber(bankTransfer.ToAccountNumber);

            _transferDomainService.PerformTransfer(originAccount, destinationAccount, bankTransfer.Amount);
            _unitOfWork.BankAccounts.Update(originAccount);
            _unitOfWork.BankAccounts.Update(destinationAccount);

            _unitOfWork.Complete();
        }
 public IActionResult Post([FromBody] BankTransferInputDto bankTransfertransfer)
 {
     _transactionApplicationService.PerformTransfer(bankTransfertransfer);
     return(Ok("Transfer done!"));
 }