public IActionResult RegisterNewTransference([FromBody] NewTransferDto transferDto) { if (!ModelState.IsValid) { return(BadRequest()); } return(Ok()); }
public NewTransferResponseDto PerformTransfer(NewTransferDto newTransferDto) { bool uowStatus = false; try { uowStatus = _unitOfWork.BeginTransaction(); Account originAccount = _accountRepository.GetByNumberWithUpgradeLock(newTransferDto.FromAccountNumber); Account destinationAccount = _accountRepository.GetByNumberWithUpgradeLock(newTransferDto.ToAccountNumber); _transferDomainService.PerformTransfer(originAccount, destinationAccount, newTransferDto.Amount); Movement originMovement = new Movement(); originMovement.Balance = newTransferDto.Amount; originMovement.Account_id = _accountRepository.GetByNumber(newTransferDto.FromAccountNumber); originMovement.Account_destino_id = _accountRepository.GetByNumber(newTransferDto.FromAccountNumber); originMovement.Movement_type_id = 4; originMovement.CreatedAt = DateTime.UtcNow; Movement destinationMovement = new Movement(); destinationMovement.Balance = newTransferDto.Amount; destinationMovement.Account_id = _accountRepository.GetByNumber(newTransferDto.ToAccountNumber); destinationMovement.Account_destino_id = _accountRepository.GetByNumber(newTransferDto.ToAccountNumber); destinationMovement.Movement_type_id = 3; destinationMovement.CreatedAt = DateTime.UtcNow; _movementRepository.SaveOrUpdate(originMovement); _movementRepository.SaveOrUpdate(destinationMovement); _accountRepository.SaveOrUpdate(originAccount); _accountRepository.SaveOrUpdate(destinationAccount); _unitOfWork.Commit(uowStatus); return(new NewTransferResponseDto { HttpStatusCode = StatusCodes.Status201Created, StringResponse = new ApiStringResponse(TransactionAppConstants.TransferPerformed) }); } catch (Exception ex) { _unitOfWork.Rollback(uowStatus); //TODO: Log exception async, for now write exception in the console Console.WriteLine(ex.Message); return(new NewTransferResponseDto { HttpStatusCode = StatusCodes.Status500InternalServerError, StringResponse = new ApiStringResponse(ApiConstants.InternalServerError) }); } }
public IActionResult PerformTransfer([FromBody] NewTransferDto newTransferDto) { NewTransferResponseDto response = _transactionApplicationService.PerformTransfer(newTransferDto); return(StatusCode(response.HttpStatusCode, response.StringResponse)); }