public bool Transferir(TransferenciaSolicitacao transferencia) { var contaOrigem = _contaCorrenteRepositorio.Obter(transferencia.ContaOrigem); if (contaOrigem == null) { _notificacao.AddNotification(nameof(transferencia.ContaOrigem), "A conta origem não existe"); return(false); } var contaDestino = _contaCorrenteRepositorio.Obter(transferencia.ContaDestino); if (contaDestino == null) { _notificacao.AddNotification(nameof(transferencia.ContaDestino), "A conta destino não existe"); return(false); } return(_transacao.RealizarTransacao(TransferenciaSolicitacao.operacao, contaOrigem, transferencia.valor, contaDestino)); }
public ContaCorrenteSolicitacao Salvar(ContaCorrenteSolicitacao conta) { if (_contaCorrenteRepositorio.Obter(conta.Conta) != null) { _notificacao.AddNotification(nameof(conta.Conta), "Conta cadastrada"); return(new ContaCorrenteSolicitacao()); } ContaCorrente contaCorrente = new ContaCorrente(Guid.NewGuid(), conta.Conta, conta.Agencia, conta.Correntista, conta.Valor); if (contaCorrente.Invalid) { _notificacao.AddNotifications(contaCorrente.Notifications); return(new ContaCorrenteSolicitacao()); } _contaCorrenteRepositorio.Salvar(contaCorrente); return(conta); }