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); }