コード例 #1
0
        public async Task <ContaCorrente> UpdateContaCorrente(ContaCorrente contaCorrente)
        {
            var validation = new ContaCorrenteValidator().Validate(contaCorrente);

            if (!validation.IsValid)
            {
                throw new TransacaoException(validation.Errors.Join(" "));
            }

            return(await _contaCorrenteRepository.UpdateContaCorrente(contaCorrente));
        }
コード例 #2
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));
        }
コード例 #3
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)));
 }