Example #1
0
        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())));
        }
Example #2
0
        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 }));
            }
        }