コード例 #1
0
        public async Task <IActionResult> ConfigurarDescontoMaximo(
            [FromBody] DescontoMaximoInputModel input,
            string id)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var turma = await _turmasRepositorio.RecuperarAsync(id);

                if (turma == null)
                {
                    return(NotFound());
                }
                turma.ConfigurarDescontoMaximo(input.Valor);
                await _escolasContexto.SaveChangesAsync();

                return(Ok(turma));
            }
            catch (InvalidOperationException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new { error = e.Message }));
            }
        }
コード例 #2
0
ファイル: TurmasController.cs プロジェクト: RSNUG-ORG/rsnug-6
        public async Task <ActionResult <TurmaViewModel> > TurmaPorId(int id)
        {
            if (id <= 0)
            {
                return(BadRequest());
            }
            if (await _turmasRepositorio.RecuperarAsync(id) is var turma && turma.HasNoValue)
            {
                return(NotFound());
            }

            return(Ok(new TurmaViewModel()));
        }
コード例 #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 }));
            }
        }
コード例 #4
0
        public async Task <ActionResult> AdicionarInscricaoAsync(
            [FromServices] ITurmasRepositorio _turmasRepositorio,
            [FromBody] NovaInscricaoInputModel novaInscricaoInputModel,
            int id)
        {
            if (await _alunosRepositorio.RecuperarAsync(id) is var aluno && aluno.HasNoValue)
            {
                return(NotFound());
            }

            if (await _turmasRepositorio.RecuperarAsync(novaInscricaoInputModel.TurmaId) is var turma && turma.HasNoValue)
            {
                return(BadRequest("Turma inválida"));
            }

            if (aluno.Value.RealizarInscricao(turma.Value, DateTime.UtcNow) is var resultado && resultado.IsFailure)
            {
                return(BadRequest(resultado.Error));
            }

            await _unitOfWork.CommitAsync();

            return(Ok());
        }