コード例 #1
0
        public NewTransferResponseDto PerformDeposit(NewDepositDto NewDepositDto)
        {
            bool uowStatus     = false;
            int  type_movement = 2;

            if (NewDepositDto.Movement == "1")
            {
                type_movement = 1;
            }

            try
            {
                uowStatus = _unitOfWork.BeginTransaction();
                Account originAccount = _accountRepository.GetByNumberWithUpgradeLock(NewDepositDto.AccountNumber);
                _transferDomainService.PerformDeposit(originAccount, NewDepositDto.Amount, NewDepositDto.Movement);
                Movement movement = new Movement();
                movement.Balance            = NewDepositDto.Amount;
                movement.Account_id         = _accountRepository.GetByNumber(NewDepositDto.AccountNumber);
                movement.Account_destino_id = _accountRepository.GetByNumber(NewDepositDto.AccountNumber);
                movement.Movement_type_id   = type_movement;
                movement.CreatedAt          = DateTime.UtcNow;

                _movementRepository.SaveOrUpdate(movement);
                _accountRepository.SaveOrUpdate(originAccount);
                _unitOfWork.Commit(uowStatus);
                return(new NewTransferResponseDto
                {
                    HttpStatusCode = StatusCodes.Status201Created,
                    StringResponse = new ApiStringResponse(TransactionAppConstants.DepositPerfomed)
                });
            }
            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)
                });
            }
        }
コード例 #2
0
        public IActionResult PerformDeposit([FromBody] NewDepositDto newDepositDto)
        {
            NewTransferResponseDto response = _transactionApplicationService.PerformDeposit(newDepositDto);

            return(StatusCode(response.HttpStatusCode, response.StringResponse));
        }