public void Efetivar(Transferencia transferencia)
        {
            var conta = contaServico.ObterConta(transferencia.ContaId);

            realizarOperacaoPeloTipo[(int)transferencia.TipoMovimentacao](conta, transferencia.Valor);
            operacaoServico.MarcarEfetivada(transferencia);
        }
        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);
        }