예제 #1
0
        public IActionResult Criar([FromBody] AlunoInputModel novoAluno)
        {
            try
            {
                if (Aluno.Novo(novoAluno.Nome, novoAluno.Email, novoAluno.DataNascimento) is var aluno && aluno.EhFalha)
                {
                    return(StatusCode(aluno.Falha.Codigo, aluno.Falha));
                }
                if (_alunosRepositorio.RecuperarPorEmail(aluno.Sucesso.Email).EhSucesso)
                {
                    return(BadRequest(Falha.Nova(400, "Email já está em uso: " + novoAluno.Email)));
                }
                if (_alunosRepositorio.IncluirESalvar(aluno.Sucesso) is var resultado && resultado.EhFalha)
                {
                    return(StatusCode(resultado.Falha.Codigo, resultado.Falha));
                }

                return(CreatedAtAction(nameof(Recuperar), new { aluno.Sucesso.Id },
                                       new AlunoViewModel(aluno.Sucesso.Id, aluno.Sucesso.Nome, aluno.Sucesso.Email, aluno.Sucesso.Idade(DateTime.Now),
                                                          aluno.Sucesso.Inscricoes.Select(a => new InscricaoViewModel(aluno.Sucesso.Id, new InscricaoViewModel.TurmaViewModel(a.Turma.Id, a.Turma.Descricao), a.InscritoEm)).ToList())));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { error = e.Message }));
            }
        }
예제 #2
0
        public IActionResult Criar([FromBody] AlunoInputModel novoAluno)
        {
            try
            {
                var aluno = Aluno.Novo(novoAluno.Nome, novoAluno.Email, novoAluno.DataNascimento);
                if (_alunosRepositorio.RecuperarPorEmail(aluno.Email) != null)
                {
                    return(BadRequest("Email já está em uso: " + novoAluno.Email));
                }
                _alunosRepositorio.IncluirESalvar(aluno);

                return(CreatedAtAction(nameof(Recuperar), new { aluno.Id },
                                       new AlunoViewModel(aluno.Id, aluno.Nome, aluno.Email, aluno.Idade(DateTime.Now),
                                                          aluno.Inscricoes.Select(a => new InscricaoViewModel(aluno.Id, new InscricaoViewModel.TurmaViewModel(a.Turma.Id, a.Turma.Descricao), a.InscritoEm)).ToList())));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { error = e.Message }));
            }
        }
예제 #3
0
 public Resultado <Aluno, Falha> Executar(NovoAlunoComando comando)
 {
     try
     {
         if (Aluno.Novo(comando.Nome, comando.Email, comando.DataNascimento) is var aluno && aluno.EhFalha)
         {
             return(aluno.Falha);
         }
         if (_alunosRepositorio.RecuperarPorEmail(aluno.Sucesso.Email).EhSucesso)
         {
             return(Falha.Nova(400, "Email já está em uso: " + comando.Email));
         }
         if (_alunosRepositorio.IncluirESalvar(aluno.Sucesso) is var resultado && resultado.EhFalha)
         {
             return(resultado.Falha);
         }
         return(resultado.Sucesso);
     }
     catch (Exception e)
     {
         return(Falha.Nova(500, "Erro ao incluir novo aluno"));
     }
 }