public IEnumerable <Conta> Consultar(string numeroConta) { if (string.IsNullOrEmpty(numeroConta)) { throw new Exception("Número da Conta deve ser preenchido"); } return(_contaRepository.Buscar(x => x.NumeroConta == numeroConta)); }
public async Task <bool> Handle(DeletarContaCommand request, CancellationToken cancellationToken) { if (_contaRepository.Buscar(c => c.Id == request.Id).Result.Any()) { Notificar("Conta não encontrada"); return(false); } var baseConta = _contaRepository.ObterTitularDaContaPorIdConta(request.Id).Result; if (baseConta != null) { Notificar("Existe um titular nessa conta, não foi possível realizar operação"); return(false); } await _contaRepository.Remover(request.Id); return(true); }
public void Executar() { if (Conta != null) { if (Conta.Valor != 0) { var lConta = _contaRepository.Buscar(x => x.NumeroConta == Conta.NumeroConta).First(); if (lConta != null) { lConta.Valor += Conta.Valor; _contaRepository.Atualizar(lConta); var lHistorico = new HistoricoTransacao { Conta = _contaRepository.ObterPorId(Conta.ID), TipoOperacao = ETipoOperacao.Deposito, }; _historicoTransacaoRepository.Adicionar(lHistorico); } else { throw new Exception("Conta informada não existe."); } } else { throw new Exception("Valor de deposito precisar ser mais que R$ 0.00"); } } else { throw new Exception("Conta inválida."); } }
public IEnumerable <Conta> Buscar(Expression <Func <Conta, bool> > predicado) { return(_contaRepository.Buscar(predicado)); }
public void Transferir(TransferenciaDTO transferenciaDTO) { var notificacoes = transferenciaDTO.Validar(); if (notificacoes.Any()) { NotificarErroNegocio(notificacoes); return; } var contaOrigem = _contaRepository.Buscar ( transferenciaDTO.BancoOrigem, transferenciaDTO.ContaOrigem, transferenciaDTO.AgenciaOrigem ); if (contaOrigem == null) { NotificarErroNegocio("Conta de origem não encontrada"); return; } var contaDestino = _contaRepository.Buscar ( transferenciaDTO.BancoDestino, transferenciaDTO.ContaDestino, transferenciaDTO.AgenciaDestino ); if (contaDestino == null) { NotificarErroNegocio("Conta de Destino não encontrada"); return; } if (!contaOrigem.Debitar(transferenciaDTO.Valor)) { NotificarErroNegocio("Saldo insuficiente para completar a operação"); return; } contaDestino.Creditar(transferenciaDTO.Valor); var lancamento = new Lancamento { ContaDestino = contaDestino, ContaOrigem = contaOrigem, Data = DateTime.Now, Valor = transferenciaDTO.Valor }; _contaRepository.Atualizar(contaOrigem); _contaRepository.Atualizar(contaDestino); _contaRepository.AdicionarLancamento(lancamento); try { _unitOfWork.Commit(); } catch (Exception ex) { NotificarErroInterno(ex.Message); } }