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 })); } }
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 })); } }
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")); } }