コード例 #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));
        }