Example #1
0
        public async Task Handle(CobrancaCriadaEvent domainEvent, CancellationToken cancellationToken)
        {
            var cobranca = await _cobrancasRepository.FindAsync(Guid.Parse(domainEvent.CobrancaId));

            if (cobranca.FormaPagamentoCartao &&
                CartaoCreditoExiste(cobranca, out CartaoCredito cartaoCredito) && cartaoCredito.ProcessamentoFinalizado)
            {
                cartaoCredito.AddTransacao(cobranca.Id.ToString(), cobranca.Valor);
            }
        }
Example #2
0
        public async Task Handle(TransacaoCobrancaReprocessandodoEvent domainEvent, CancellationToken cancellationToken)
        {
            var cobranca = await _cobrancasRepository.FindAsync(Guid.Parse(domainEvent.CobrancaId));

            if (cobranca.FormaPagamentoCartao && Guid.TryParse(cobranca.ClienteCobranca.CartaoCreditoCobranca.TenantId, out Guid cartaoCreditoId))
            {
                var cartaoCredito = await _cartaoCreditoRepository.FindAsync(cartaoCreditoId);

                if (cartaoCredito && cartaoCredito.Transacoes.Any(t => t.CobrancaId == domainEvent.CobrancaId))
                {
                    var transacao = cartaoCredito.Transacoes.First(t => t.CobrancaId == domainEvent.CobrancaId);
                    transacao.Reprocessar(cobranca.Valor);
                }
            }
        }