示例#1
0
        public async Task <ActionResult> ListarSondagemPortugues(ClassRoomModel classRoomModel)
        {
            try
            {
                var classRoomDataTransfer = new ClassRoomFilter()
                {
                    classroomCodeEol = classRoomModel.classroomCodeEol,
                    dreCodeEol       = classRoomModel.dreCodeEol,
                    schoolCodeEol    = classRoomModel.schoolCodeEol,
                    schoolYear       = classRoomModel.schoolYear,
                    yearClassroom    = classRoomModel.yearClassroom
                };

                var BusinessPoll = new Data.Business.PollPortuguese(_config);
                var ListStudentPollPortuguese = await BusinessPoll.ListStudentPollPortuguese(classRoomDataTransfer);

                if (ListStudentPollPortuguese != null)
                {
                    return(Ok(ListStudentPollPortuguese));
                }

                else
                {
                    return(NoContent());
                }
            }
            catch (System.Exception ex)
            {
                return(StatusCode(500, ex));
            }
        }
        private async Task <PollReportPortugueseResult> BuscarDadosSyncAsync(ParametersModel parameters, string anoLetivo, string codigoDre, string codigoEscola, string codigoCurso)
        {
            var BusinessPoll = new Data.Business.PollPortuguese(_config);

            return(await BusinessPoll.BuscarDadosRelatorioPortugues(parameters.Proficiency, parameters.Term, anoLetivo, codigoDre, codigoEscola, codigoCurso));

            ;
        }
示例#3
0
        public async Task <ActionResult> IncluirSondagemPortugues(List <StudentPollPortuguese> ListStudentPollPortuguese)
        {
            try
            {
                var BusinessPollPortuguese = new Data.Business.PollPortuguese(_config);
                BusinessPollPortuguese.InsertPollPortuguese(ListStudentPollPortuguese);

                return(Ok());
            }
            catch (System.Exception ex)
            {
                return(StatusCode(500, ex));
            }
        }
        private async Task <PollReportPortugueseStudentResult> BuscarDadosPorTurmaAsync(ParametersModel parameters)
        {
            var BusinessPoll     = new Data.Business.PollPortuguese(_config);
            var listaAlunosTurma = await BusinessPoll.BuscarAlunosTurmaRelatorioPortugues(parameters.CodigoTurmaEol, parameters.Proficiency, parameters.Term);//ajustar para pegar a turma

            List <PollReportPortugueseStudentItem> result = new List <PollReportPortugueseStudentItem>();
            List <PortChartDataModel> graficos            = new List <PortChartDataModel>();

            foreach (var sondagem in listaAlunosTurma)
            {
                string tipo = ConverterProficienciaAluno(parameters.Proficiency, parameters.Term, sondagem);
                result.Add(
                    new PollReportPortugueseStudentItem()
                {
                    Code         = sondagem.studentCodeEol,
                    StudentName  = sondagem.studentNameEol,
                    StudentValue = tipo
                }
                    );

                graficos.Add(new PortChartDataModel()
                {
                    Name  = tipo,
                    Value = 1
                });
            }

            PollReportPortugueseStudentResult retorno = new PollReportPortugueseStudentResult();

            retorno.Results = result;

            var listaGrafico = graficos.GroupBy(fu => fu.Name).Select(g => new { Label = g.Key, Value = g.Count() }).ToList();

            graficos = new List <PortChartDataModel>();
            foreach (var item in listaGrafico)
            {
                graficos.Add(new PortChartDataModel()
                {
                    Name  = item.Label,
                    Value = item.Value
                });
            }
            retorno.ChartData = graficos;

            return(retorno);
        }
        public async Task <ActionResult <string> > ObterDados([FromBody] ParametersModel parameters)
        {
            var businessPoll = new Data.Business.PollPortuguese(_config);

            if (int.Parse(parameters.CodigoCurso) >= 7 && parameters.Discipline == "Matemática")
            {
                var filtro = new filtrosRelatorioDTO()
                {
                    AnoEscolar          = int.Parse(parameters.CodigoCurso),
                    AnoLetivo           = int.Parse(parameters.SchoolYear),
                    CodigoDre           = parameters.CodigoDRE,
                    CodigoUe            = parameters.CodigoEscola,
                    CodigoTurmaEol      = parameters.CodigoTurmaEol,
                    DescricaoDisciplina = parameters.Discipline,
                    DescricaoPeriodo    = parameters.Term,
                };
                var obj = new RelatorioMatematicaAutoral();

                if (parameters.ClassroomReport)
                {
                    var relatorioPorTurma = await obj.ObterRelatorioPorTurma(filtro);

                    return(Ok(relatorioPorTurma));
                }
                var relatorioConsolidado = await obj.ObterRelatorioMatematicaAutoral(filtro);

                return(Ok(relatorioConsolidado));
            }

            Periodo periodo = await businessPoll.ObterPeriodoRelatorioPorDescricao(parameters.Term);


            if (parameters.Discipline == "Língua Portuguesa")
            {
                if (parameters.ClassroomReport)
                {
                    if (Convert.ToInt32(parameters.CodigoCurso) < 4)
                    {
                        PollReportPortugueseStudentResult result = new PollReportPortugueseStudentResult();
                        result = await BuscarDadosPorTurmaAsync(parameters, periodo);

                        return(Ok(result));
                    }

                    if (parameters.GrupoId != null && parameters.GrupoId.Equals("e27b99a3-789d-43fb-a962-7df8793622b1"))
                    {
                        var relatorioCapacidadeLeitura = new RelatorioPortuguesCapacidadeLeitura();
                        var relatorio = await relatorioCapacidadeLeitura.ObterRelatorioCapacidadeLeituraPorTurma(new RelatorioPortuguesFiltroDto
                        {
                            AnoEscolar             = Convert.ToInt32(parameters.CodigoCurso),
                            AnoLetivo              = Convert.ToInt32(parameters.SchoolYear),
                            CodigoDre              = parameters.CodigoDRE,
                            CodigoUe               = parameters.CodigoEscola,
                            ComponenteCurricularId = "c65b2c0a-7a58-4d40-b474-23f0982f14b1",
                            GrupoId     = "e27b99a3-789d-43fb-a962-7df8793622b1",
                            PeriodoId   = periodo.Id,
                            CodigoTurma = parameters.CodigoTurmaEol
                        });

                        return(Ok(relatorio));
                    }

                    return(Ok(await ObterRelatorioProducaoTextoLeituraVozAlta(parameters, periodo)));
                }
                else
                {
                    if (periodo == null)
                    {
                        return(StatusCode(500, $"Não foi possivel encontrar o périodo com descrição {parameters.Term}"));
                    }

                    if (Convert.ToInt32(parameters.CodigoCurso) < 4)
                    {
                        PollReportPortugueseResult result = new PollReportPortugueseResult();
                        result = await BuscarDadosSyncAsync(parameters, parameters.SchoolYear, parameters.CodigoDRE, parameters.CodigoEscola, parameters.CodigoCurso, businessPoll, periodo);

                        return(Ok(result));
                    }

                    if (parameters.GrupoId.Equals("e27b99a3-789d-43fb-a962-7df8793622b1"))
                    {
                        var relatorioCapacidadeLeitura = new RelatorioPortuguesCapacidadeLeitura();
                        var relatorioCapacidade        = await relatorioCapacidadeLeitura.ObterRelatorioCapacidadeLeitura(new RelatorioPortuguesFiltroDto
                        {
                            AnoEscolar             = Convert.ToInt32(parameters.CodigoCurso),
                            AnoLetivo              = Convert.ToInt32(parameters.SchoolYear),
                            CodigoDre              = parameters.CodigoDRE,
                            CodigoUe               = parameters.CodigoEscola,
                            ComponenteCurricularId = "c65b2c0a-7a58-4d40-b474-23f0982f14b1",
                            GrupoId   = "e27b99a3-789d-43fb-a962-7df8793622b1",
                            PeriodoId = periodo.Id
                        });

                        return(Ok(relatorioCapacidade));
                    }
                    return(Ok(await BuscarDadosAutoralAsync(parameters, periodo.Id)));
                }
            }
            else if (parameters.Discipline == "Matemática")
            {
                if (parameters.ClassroomReport)
                {
                    if (parameters.Proficiency == "Números")
                    {
                        PollReportMathStudentNumbersResult result = await BuscaDadosMathTurmaNumbersAsync(parameters.Proficiency,
                                                                                                          parameters.Term,
                                                                                                          parameters.CodigoDRE,
                                                                                                          parameters.CodigoEscola,
                                                                                                          parameters.CodigoTurmaEol, parameters.CodigoCurso, parameters.SchoolYear);

                        return(Ok(result));
                    }
                    else
                    {
                        PollReportMathStudentResult result = await BuscaDadosMathTurmaAsync(parameters.Proficiency,
                                                                                            parameters.Term,
                                                                                            parameters.CodigoDRE,
                                                                                            parameters.CodigoEscola,
                                                                                            parameters.CodigoTurmaEol, parameters.CodigoCurso, parameters.SchoolYear);

                        return(Ok(result));
                    }
                }

                else    // cONSOLIDADO
                {
                    var result = await BuscaDadosMathAsync(parameters, parameters.SchoolYear, parameters.CodigoDRE, parameters.CodigoEscola, parameters.CodigoCurso, periodo);

                    return(Ok(result));
                }
            }

            return(NotFound());
        }
        private async Task <PollReportPortugueseStudentResult> BuscarDadosPorTurmaAsync(ParametersModel parameters, Periodo periodo)
        {
            var BusinessPoll   = new Data.Business.PollPortuguese(_config);
            var alunosBusiness = new AlunosBusiness(_config);

            var alunosEol = await alunosBusiness.ObterAlunosEOL(parameters.SchoolYear, parameters.CodigoTurmaEol, parameters.Term);

            var listaAlunosTurma = await BusinessPoll.BuscarAlunosTurmaRelatorioPortugues(
                parameters.CodigoTurmaEol,
                parameters.Proficiency,
                parameters.Term,
                periodo,
                Convert.ToInt32(parameters.SchoolYear),
                parameters.CodigoDRE,
                parameters.CodigoEscola,
                parameters.CodigoCurso);//ajustar para pegar a turma

            List <PollReportPortugueseStudentItem> result = new List <PollReportPortugueseStudentItem>();

            List <PortChartDataModel> graficos = new List <PortChartDataModel>();

            foreach (var aluno in alunosEol)
            {
                var    sondagem = listaAlunosTurma.FirstOrDefault(s => s.studentCodeEol == aluno.CodigoAluno.ToString());
                string tipo     = ConverterProficienciaAluno(parameters.Proficiency, parameters.Term, sondagem);
                result.Add(
                    new PollReportPortugueseStudentItem()
                {
                    Code         = aluno.CodigoAluno.ToString(),
                    StudentName  = aluno.NomeAlunoRelatorio,
                    StudentValue = tipo
                }
                    );

                graficos.Add(new PortChartDataModel()
                {
                    Name  = tipo,
                    Value = 1
                });
            }

            PollReportPortugueseStudentResult retorno = new PollReportPortugueseStudentResult();

            retorno.Results = result;

            var listaGrafico = graficos.GroupBy(fu => fu.Name).Select(g => new { Label = g.Key, Value = g.Count() }).ToList();

            graficos = new List <PortChartDataModel>();
            foreach (var item in listaGrafico)
            {
                if (!string.IsNullOrWhiteSpace(item.Label))
                {
                    graficos.Add(new PortChartDataModel()
                    {
                        Name  = item.Label,
                        Value = item.Value
                    });
                }
            }
            retorno.ChartData = graficos.OrderBy(a => a.Name).ToList();


            var semPreenchimento = listaGrafico.FirstOrDefault(a => string.IsNullOrWhiteSpace(a.Label));

            if (semPreenchimento != null)
            {
                retorno.ChartData.Add(new PortChartDataModel()
                {
                    Name  = "Sem Preenchimento",
                    Value = semPreenchimento.Value
                });
            }

            return(retorno);
        }