public Conta Depositar(Conta conta, Transacoes transacao) { conta.Depositar(transacao); if (!conta.IsValid() || !transacao.IsValid()) { return(conta); } return(!conta.ValidationResult.IsValid ? conta : _contaRepository.Atualizar(conta)); }
public Conta Sacar(Conta conta, Transacoes transacao) { conta.Sacar(transacao); if (!conta.IsValid() || !transacao.IsValid()) { return(conta); } conta.ValidationResult = new SaqueEstaConsistenteValidation(_contaRepository, _transacoesRepository).Validate(transacao); return(!conta.ValidationResult.IsValid ? conta : _contaRepository.Atualizar(conta)); }
public Transacoes Adicionar(Transacoes transacoes) { if (!transacoes.IsValid()) { return(transacoes); } if (transacoes.ValidationResult.IsValid) { if (transacoes.TipoTransacao == Enuns.TipoTransacao.Saque) { transacoes.Valor = transacoes.Valor * -1; } return(_transacoesRepository.Adicionar(transacoes)); } return(transacoes); }