public IActionResult RealizarInscricao(string alunoId, [FromBody] Inscricao novaInscricao)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var aluno = _alunosRepositorio.Recuperar(alunoId);
                if (aluno == null)
                {
                    return(NotFound("Aluno inválido"));
                }

                var turma = _turmasRepositorio.Recuperar(novaInscricao.TurmaId);
                if (turma == null)
                {
                    return(BadRequest("Turma informada é inválida"));
                }

                if (turma.TotalInscritos + 1 > turma.LimiteAlunos)
                {
                    return(BadRequest("Não existe mais vagas para a turma"));
                }

                #region suposicoes
                // Validar se aluno tem idade suficiente para a turma desejada

                // Validar se aluno está adimplente

                // Turma deve estar aberta

                // Após gerar inscrição gerar mensallidades conforme regra da turma

                // Enviar email de boas vindas
                #endregion

                novaInscricao.AlunoId    = alunoId;
                novaInscricao.InscritoEm = DateTime.Now;
                _inscricoesRepositorio.Nova(novaInscricao);

                return(CreatedAtAction(nameof(RecuperarInscricao), new { alunoId, novaInscricao.Id }, novaInscricao));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { error = e.Message }));
            }
        }
Exemple #2
0
 public IActionResult Recuperar(string id)
 {
     try
     {
         var turma = _turmasRepositorio.Recuperar(id);
         if (turma == null)
         {
             return(NotFound("Nenhuma turma com o id desejado"));
         }
         return(Ok(turma));
     }
     catch (Exception e)
     {
         return(StatusCode(500, new { error = e.Message }));
     }
 }