Ejemplo n.º 1
0
        public IActionResult RealizarInscricao(string alunoId, [FromBody] InscricaoInputModel novaInscricao)
        {
            try
            {
                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"));
                }

                var inscricao = aluno.RealizarInscricao(turma);
                _alunosRepositorio.Atualizar(aluno);

                return(CreatedAtAction(nameof(RecuperarInscricao), new { alunoId, inscricao.Id },
                                       new InscricaoViewModel(aluno.Id, new InscricaoViewModel.TurmaViewModel(inscricao.Turma.Id, inscricao.Turma.Descricao), inscricao.InscritoEm)));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { error = e.Message }));
            }
        }
Ejemplo n.º 2
0
        public IActionResult RealizarInscricao(string alunoId, [FromBody] InscricaoInputModel novaInscricao)
        {
            try
            {
                if (_alunosRepositorio.Recuperar(alunoId) is var aluno && aluno.EhFalha)
                {
                    return(StatusCode(aluno.Falha.Codigo, aluno.Falha));
                }

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

                if (aluno.Sucesso.RealizarInscricao(turma) is var inscricao && inscricao.EhFalha)
                {
                    return(StatusCode(inscricao.Falha.Codigo, inscricao.Falha));
                }

                if (_alunosRepositorio.Atualizar(aluno.Sucesso) is var resultado && resultado.EhFalha)
                {
                    return(StatusCode(resultado.Falha.Codigo, resultado.Falha));
                }

                return(CreatedAtAction(nameof(RecuperarInscricao), new { alunoId, inscricao.Sucesso.Id },
                                       new InscricaoViewModel(aluno.Sucesso.Id, new InscricaoViewModel.TurmaViewModel(inscricao.Sucesso.Turma.Id, inscricao.Sucesso.Turma.Descricao), inscricao.Sucesso.InscritoEm)));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { error = e.Message }));
            }
        }
Ejemplo n.º 3
0
        public IActionResult RealizarInscricao(string alunoId, [FromBody] InscricaoInputModel novaInscricao)
        {
            var resultado = _realizarInscricaoHandler.Executar(new RealizarInscricaoComando(alunoId, novaInscricao.TurmaId));

            if (resultado.EhFalha)
            {
                return(StatusCode(resultado.Falha.Codigo, resultado.Falha));
            }
            return(CreatedAtAction(nameof(RecuperarInscricao), new { alunoId, resultado.Sucesso.Id },
                                   new InscricaoViewModel(resultado.Sucesso.Id, new InscricaoViewModel.TurmaViewModel(resultado.Sucesso.Turma.Id, resultado.Sucesso.Turma.Descricao), resultado.Sucesso.InscritoEm)));
        }
Ejemplo n.º 4
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 }));
            }
        }
        public IActionResult RealizarInscricao([FromBody] InscricaoInputModel novaInscricao)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                //Localizar aluno
                var aluno = _alunosDataAccess.Recuperar(novaInscricao.AlunoId);
                if (aluno == null)
                {
                    return(BadRequest("Nenhum aluno encontrado"));
                }

                //Localizar turma
                var turma = _turmasDataAcess.Recuperar(novaInscricao.TurmaId);
                if (turma == null)
                {
                    return(BadRequest("Nenhuma turma encontrada"));
                }

                var inscricao = aluno.RealizarInscricao(turma);

                //Enviar email

                //Salvar inscrição
                _alunosDataAccess.Salvar(aluno);

                return(Ok(novaInscricao));
            }
            catch (InvalidOperationException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { error = e.Message }));
            }
        }