public async Task <ActionResult <AlunoViewModel> > AlunoPorId(int id) { if (id <= 0) { return(BadRequest()); } if (await _alunosRepositorio.RecuperarAsync(id) is var aluno && aluno.HasNoValue) { return(NotFound()); } return(Ok(new AlunoViewModel( aluno.Value.Nome, aluno.Value.Email, aluno.Value.DataNascimento, aluno.Value.Sexo.ToString()))); }
public async Task <IActionResult> RealizarInscricao([FromBody] InscricaoInputModel novaInscricao) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //Localizar aluno var aluno = await _alunosRepositorio.RecuperarAsync(novaInscricao.AlunoId); if (aluno == null) { return(BadRequest("Nenhum aluno encontrado")); } //Localizar turma var turma = await _turmasRepositorio.RecuperarAsync(novaInscricao.TurmaId); if (turma == null) { return(BadRequest("Nenhuma turma encontrada")); } var inscricao = aluno.RealizarInscricao(turma, novaInscricao.TipoPagamento.ToEnum <Inscricao.ETipoPagamento>()); //Enviar email //Persistir todas as alterações feitas await _escolasContexto.SaveChangesAsync(); return(Ok(novaInscricao)); } catch (InvalidOperationException ex) { return(BadRequest(ex.Message)); } catch (Exception e) { return(StatusCode(500, new { error = e.Message })); } }