public async Task <IActionResult> Novo([FromBody] NovaTurmaInputModel input)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var turma = Turma.CriarFechada(input.Descricao, input.LimiteAlunos, input.IdadeMinima, input.Duracao, input.ValorMensal);
                await _turmasRepositorio.AdicionarAsync(turma);

                await _escolasContexto.SaveChangesAsync();

                return(Ok(turma));
            }
            catch (InvalidOperationException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { error = e.Message }));
            }
        }
Example #2
0
        public async Task <IActionResult> Novo([FromBody] NovoAlunoInputModel input)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var aluno = Aluno.Criar(input.Nome, input.Email, input.DataNascimento, input.Sexo.ToEnum <Aluno.ESexo>(),
                                        new Endereco(input.Rua, input.Numero, input.Complemento, input.Bairro, input.Cidade, input.Cep, input.DistanciaAteEscola));
                await _alunosRepositorio.AdicionarAsync(aluno);

                await _escolasContexto.SaveChangesAsync();

                return(Ok(aluno));
            }
            catch (InvalidOperationException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { error = e.Message }));
            }
        }
Example #3
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 }));
            }
        }