コード例 #1
0
        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));
        }
コード例 #2
0
 public Transacao Sacar(ContaCorrente conta, Valor valor)
 {
     ContaCorrenteValidator.ExisteSaldoParaSaque(conta, valor);
     conta.Debitar(valor);
     return(_LancamentoService.Registrar(new Lancamento(TipoLancamento.Debito, conta.Id, valor)));
 }