public void Efetivar(EfetivarOperacaoBinariaDto dto)
        {
            var transferenciaSaida   = transferenciaRepositorio.Get(dto.OperacaoSaidaId);
            var transferenciaEntrada = transferenciaRepositorio.Get(dto.OperacaoEntradaId);

            try
            {
                using (var transacao = transacaoServico.GerarNova())
                {
                    Efetivar(transferenciaSaida);
                    Efetivar(transferenciaEntrada);

                    transacao.Finalizar();
                }
            }
            catch (CarteiraDigitalException e)
            {
                operacaoServico.MarcarComErro(transferenciaSaida, e.Message);
                operacaoServico.MarcarComErro(transferenciaEntrada, e.Message);
            }

            transferenciaRepositorio.Update(transferenciaSaida, transferenciaEntrada);
        }
Ejemplo n.º 2
0
        public void Efetivar(EfetivarOperacaoUnariaDto dto)
        {
            var cashIn = cashInRepositorio.Get(dto.OperacaoId);

            try
            {
                var conta = contaServico.ObterConta(cashIn.ContaId);

                using (var transacao = transacaoServico.GerarNova())
                {
                    operacaoServico.Creditar(conta, cashIn.Valor + cashIn.ValorBonificacao);
                    operacaoServico.MarcarEfetivada(cashIn);

                    transacao.Finalizar();
                }
            }
            catch (CarteiraDigitalException e)
            {
                operacaoServico.MarcarComErro(cashIn, e.Message);
            }

            cashInRepositorio.Update(cashIn);
        }