public Transacao Transferir(ContaCorrente origem, ContaCorrente destino, Valor valor) { ContaCorrenteValidator.ExisteSaldoParaSaque(origem, valor); origem.Debitar(valor); destino.Depositar(valor); var lancamentoSaida = new Lancamento(TipoLancamento.Debito, origem.Id, valor); var lancamentoEntrada = new Lancamento(TipoLancamento.Credito, destino.Id, valor); return(_LancamentoService.RegistrarTransferencia(lancamentoEntrada, lancamentoSaida)); }
public Transacao Sacar(ContaCorrente conta, Valor valor) { ContaCorrenteValidator.ExisteSaldoParaSaque(conta, valor); conta.Debitar(valor); return(_LancamentoService.Registrar(new Lancamento(TipoLancamento.Debito, conta.Id, valor))); }