public async Task <IActionResult> CadastrarConta([FromBody, SwaggerParameter("Informações de cadastro da conta.", Required = true)] ContaViewModel model) { var entrada = new ContaEntrada( base.ObterIdUsuarioClaim(), model.Nome, model.Tipo, model.ValorSaldoInicial, model.NomeInstituicao, model.NumeroAgencia, model.Numero); return(new ApiResult(await _contaServico.CadastrarConta(entrada))); }
public void Alterar(ContaEntrada entrada) { if (entrada.Invalido) { return; } this.Nome = entrada.Nome; this.Tipo = entrada.Tipo; this.ValorSaldoInicial = entrada.ValorSaldoInicial; this.NomeInstituicao = entrada.NomeInstituicao; this.NumeroAgencia = entrada.NumeroAgencia; this.Numero = entrada.Numero; }
public Conta(ContaEntrada entrada) : this() { if (entrada.Invalido) { return; } this.IdUsuario = entrada.IdUsuario; this.Nome = entrada.Nome; this.Tipo = entrada.Tipo; this.ValorSaldoInicial = entrada.ValorSaldoInicial.HasValue && entrada.ValorSaldoInicial.Value == 0 ? null : entrada.ValorSaldoInicial; this.NomeInstituicao = entrada.NomeInstituicao; this.NumeroAgencia = entrada.NumeroAgencia; this.Numero = entrada.Numero; }
public async Task <ISaida> AlterarConta(int idConta, ContaEntrada entrada) { // Verifica se as informações para alteração foram informadas corretamente if (entrada.Invalido) { return(new Saida(false, entrada.Mensagens, null)); } var conta = await _contaRepositorio.ObterPorId(idConta); // Verifica se a conta existe this.NotificarSeNulo(conta, string.Format(ContaMensagem.Id_Conta_Nao_Existe, idConta)); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se a conta pertece ao usuário informado. this.NotificarSeDiferentes(conta.IdUsuario, entrada.IdUsuario, ContaMensagem.Conta_Alterar_Nao_Pertence_Usuario); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se o usuário já possui alguma conta com o nome informado this.NotificarSeVerdadeiro(await _contaRepositorio.VerificarExistenciaPorNome(entrada.IdUsuario, entrada.Nome, idConta), ContaMensagem.Conta_Com_Mesmo_Nome); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } conta.Alterar(entrada); _contaRepositorio.Atualizar(conta); await _uow.Commit(); return(new Saida(true, new[] { ContaMensagem.Conta_Alterada_Com_Sucesso }, new ContaSaida(conta, await CalcularSaldoDisponivelAtual(conta)))); }
public async Task <ISaida> CadastrarConta(ContaEntrada entrada) { // Verifica se as informações para cadastro foram informadas corretamente if (entrada.Invalido) { return(new Saida(false, entrada.Mensagens, null)); } // Verifica se o usuário já possui alguma conta com o nome informado this.NotificarSeVerdadeiro(await _contaRepositorio.VerificarExistenciaPorNome(entrada.IdUsuario, entrada.Nome), ContaMensagem.Conta_Com_Mesmo_Nome); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } var conta = new Conta(entrada); await _contaRepositorio.Inserir(conta); await _uow.Commit(); return(new Saida(true, new[] { ContaMensagem.Conta_Cadastrada_Com_Sucesso }, new ContaSaida(conta, conta.ValorSaldoInicial))); }