Ejemplo n.º 1
0
        public void Realiza_Operacao_Debito()
        {
            var contaCorrente = new ContaCorrenteResource()
            {
                CodBanco     = 33
                , CodCliente = 1
                , CodAgencia = 578
                , CodConta   = 130032517
                , Digito     = 5
                , Valor      = 550
            };

            _mockOperacaoAppService.RealizarDebitoCredito(contaCorrente, TipoOperacao.Debito);
        }
        public async Task <IActionResult> Debito([FromBody] ContaCorrenteResource contaCorrente)
        {
            _logger.LogInformation(102, "Dados de Entrada API de Operação Débito {valor}", contaCorrente.Valor);

            try
            {
                await _operacaoAppService.RealizarDebitoCredito(contaCorrente, TipoOperacao.Debito);

                return(Ok());
            }
            catch (Exception exception)
            {
                return(BadRequest(exception));
            }
        }
        public async Task RealizarDebitoCredito(ContaCorrenteResource contaCorrente, TipoOperacao tipoOperacao)
        {
            await Task.Run(() =>
            {
                var contaDestino    = _contaCorrenteServiceDomain.Criar(contaCorrente.CodBanco, contaCorrente.CodCliente, contaCorrente.CodAgencia, contaCorrente.CodConta, contaCorrente.Digito);
                var operacaoRetorno = _operacaoServiceDomain.EfetuarOperacaoCreditoDebito(contaDestino, tipoOperacao, contaCorrente.Valor);

                var lancamento = new LancamentoDomain()
                {
                    ContaDestino = operacaoRetorno.ContaDestino,
                };

                _lancamentoServiceDomain.RegistraLancamentoDebitoCredito(lancamento, tipoOperacao, contaCorrente.Valor);
            });
        }