public PollReportMathStudentResult BuscarDadosMatematicaPorTurmaAsync(string proficiency, string term,
                                                                              string codigoDRE,
                                                                              string codigoEscola,
                                                                              string codigoTurmaEol, string CodigoCurso)
        {
            List <MathChartDataModel> graficos = new List <MathChartDataModel>();

            PollReportMathStudentResult retorno = new PollReportMathStudentResult();
            //ajustar para pegar a turma
            List <PollReportMathStudentItem> result = new List <PollReportMathStudentItem>();

            if (proficiency == "Campo Aditivo")
            {
                result   = BuscaDadosCA(codigoTurmaEol, proficiency, term, codigoEscola, CodigoCurso);
                graficos = BuscaGraficoCA(codigoTurmaEol, proficiency, term, CodigoCurso);
            }
            else if (proficiency == "Campo Multiplicativo")
            {
                result   = BuscaDadosCM(codigoTurmaEol, proficiency, term, CodigoCurso);
                graficos = BuscaGraficoCM(codigoTurmaEol, proficiency, term, CodigoCurso);
            }

            result = result.OrderBy(r => r.StudentName).ToList();

            retorno.Results   = result;
            retorno.ChartData = graficos;

            return(retorno);
        }
        public async Task <ActionResult <string> > ObterDados([FromBody] ParametersModel parameters)
        {
            if (parameters.Discipline == "Língua Portuguesa")
            {
                if (parameters.ClassroomReport)
                {
                    PollReportPortugueseStudentResult result = new PollReportPortugueseStudentResult();
                    result = await BuscarDadosPorTurmaAsync(parameters);

                    return(Ok(result));
                }
                else
                {
                    PollReportPortugueseResult result = new PollReportPortugueseResult();
                    result = await BuscarDadosSyncAsync(parameters, "2019", parameters.CodigoDRE, parameters.CodigoEscola, parameters.CodigoCurso);

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



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


                        return(Ok(result));
                    }
                }

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

                    return(Ok(result));
                }
            }

            return(NotFound());
        }
示例#3
0
        public async Task <PollReportMathStudentResult> BuscarDadosMatematicaPorTurmaAsync(string proficiency, string term,
                                                                                           string codigoDRE,
                                                                                           string codigoEscola,
                                                                                           string codigoTurmaEol, string CodigoCurso, string schoolYear)
        {
            PollReportMathStudentResult retorno = new PollReportMathStudentResult();

            if (proficiency == "Campo Aditivo")
            {
                retorno = await BuscaDadosCA(codigoTurmaEol, proficiency, term, CodigoCurso, schoolYear);
            }
            else if (proficiency == "Campo Multiplicativo")
            {
                retorno = await BuscaDadosCM(codigoTurmaEol, proficiency, term, CodigoCurso, schoolYear);
            }

            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());
        }
示例#5
0
        private async Task <PollReportMathStudentResult> BuscaDadosCM(string CodigoTurmaEol, string Proficiency, string Term, string CodigoCurso, string schoolYear)
        {
            PollReportMathStudentResult      result    = new PollReportMathStudentResult();
            List <PollReportMathStudentItem> relatorio = new List <PollReportMathStudentItem>();
            List <MathChartDataModel>        graficos  = new List <MathChartDataModel>();

            PollMatematica poll             = new PollMatematica(_config);
            var            listaAlunosTurma = poll.BuscarAlunosTurmaRelatorioMatematicaCM(CodigoTurmaEol, Proficiency, Term);

            var alunosEol = await ObterAlunosEOL(schoolYear, CodigoTurmaEol, Term);

            var totalAlunosEol = alunosEol.Count();

            foreach (var aluno in alunosEol)
            {
                var sondagem = listaAlunosTurma.Where(s => s.AlunoEolCode == aluno.CodigoAluno.ToString()).FirstOrDefault();
                List <MathStudentItemResult> pollTotal = new List <MathStudentItemResult>();
                if (CodigoCurso.Equals("2"))
                {
                    MathStudentItemResult item = new MathStudentItemResult();
                    string ideia     = "";
                    string resultado = "";

                    ideia = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem3Ideia) : null;

                    resultado = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem3Resultado) : null;

                    item.Idea   = ideia;
                    item.Order  = CadastraLegenda(Proficiency, 3, CodigoCurso, false);
                    item.Result = resultado;
                    pollTotal.Add(item);
                }
                else
                {
                    for (int ordem = 4; ordem < 9; ordem++)
                    {
                        MathStudentItemResult item        = new MathStudentItemResult();
                        MathChartDataModel    itemGrafico = new MathChartDataModel();

                        string ideia     = "";
                        string resultado = "";

                        switch (ordem)
                        {
                        case 4:
                            if (CodigoCurso.Equals("3"))
                            {
                                ideia = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem4Ideia) : null;

                                resultado = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem4Resultado) : null;

                                item.Idea   = ideia;
                                item.Order  = CadastraLegenda(Proficiency, ordem, CodigoCurso, false);
                                item.Result = resultado;
                                pollTotal.Add(item);
                            }
                            break;

                        case 5:
                            ideia = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem5Ideia) : null;

                            resultado = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem5Resultado) : null;

                            item.Idea   = ideia;
                            item.Order  = CadastraLegenda(Proficiency, ordem, CodigoCurso, false);
                            item.Result = resultado;
                            pollTotal.Add(item);
                            break;

                        case 6:
                            if (!CodigoCurso.Equals("3"))
                            {
                                ideia = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem6Ideia) : null;

                                resultado = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem6Resultado) : null;

                                item.Idea   = ideia;
                                item.Order  = CadastraLegenda(Proficiency, ordem, CodigoCurso, false);
                                item.Result = resultado;
                                pollTotal.Add(item);
                            }
                            break;

                        case 7:
                            if (!CodigoCurso.Equals("3"))
                            {
                                ideia = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem7Ideia) : null;

                                resultado = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem7Resultado) : null;

                                item.Idea   = ideia;
                                item.Order  = CadastraLegenda(Proficiency, ordem, CodigoCurso, false);
                                item.Result = resultado;
                                pollTotal.Add(item);
                            }
                            break;

                        case 8:
                            if (!CodigoCurso.Equals("3") && !CodigoCurso.Equals("4"))
                            {
                                ideia = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem8Ideia) : null;

                                resultado = sondagem != null?ConverteTextoPollMatematica(sondagem.Ordem8Resultado) : null;

                                item.Idea   = ideia;
                                item.Order  = CadastraLegenda(Proficiency, ordem, CodigoCurso, false);
                                item.Result = resultado;
                                pollTotal.Add(item);
                            }
                            break;
                        }
                    }
                }

                relatorio.Add(
                    new PollReportMathStudentItem()
                {
                    Code        = aluno.CodigoAluno.ToString(),
                    StudentName = aluno.NomeAlunoRelatorio,
                    Poll        = pollTotal
                }
                    );
            }

            if (CodigoCurso.Equals("2"))
            {
                MathChartDataModel item = new MathChartDataModel();
                item.Name = CadastraLegenda(Proficiency, 3, CodigoCurso, true);
                item.Idea = new List <int> {
                    listaAlunosTurma.Where(p => p.Ordem3Ideia != null && p.Ordem3Ideia.Equals("A")).Count(),
                    listaAlunosTurma.Where(p => p.Ordem3Ideia != null && p.Ordem3Ideia.Equals("E")).Count(),
                    listaAlunosTurma.Where(p => p.Ordem3Ideia != null && p.Ordem3Ideia.Equals("NR")).Count(),
                    totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem3Ideia != null &&
                                                            (p.Ordem3Ideia.Equals("A") || p.Ordem3Ideia.Equals("NR") || p.Ordem3Ideia.Equals("E"))).Count()
                };
                item.Result = new List <int> {
                    listaAlunosTurma.Where(p => p.Ordem3Resultado != null && p.Ordem3Resultado.Equals("A")).Count(),
                    listaAlunosTurma.Where(p => p.Ordem3Resultado != null && p.Ordem3Resultado.Equals("E")).Count(),
                    listaAlunosTurma.Where(p => p.Ordem3Resultado != null && p.Ordem3Resultado.Equals("NR")).Count(),
                    totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem3Resultado != null &&
                                                            (p.Ordem3Resultado.Equals("A") || p.Ordem3Resultado.Equals("NR") || p.Ordem3Resultado.Equals("E"))).Count()
                };
                graficos.Add(item);
            }
            else
            {
                for (int ordem = 4; ordem < 11; ordem++)
                {
                    MathChartDataModel item = new MathChartDataModel();

                    switch (ordem)
                    {
                    case 4:
                        if (CodigoCurso.Equals("3"))
                        {
                            item.Name = CadastraLegenda(Proficiency, ordem, CodigoCurso, true);
                            item.Idea = new List <int> {
                                listaAlunosTurma.Where(p => p.Ordem4Ideia != null && p.Ordem4Ideia.Equals("A")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem4Ideia != null && p.Ordem4Ideia.Equals("E")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem4Ideia != null && p.Ordem4Ideia.Equals("NR")).Count(),
                                totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem4Ideia != null &&
                                                                        (p.Ordem4Ideia.Equals("A") || p.Ordem4Ideia.Equals("NR") || p.Ordem4Ideia.Equals("E"))).Count()
                            };
                            item.Result = new List <int> {
                                listaAlunosTurma.Where(p => p.Ordem4Resultado != null && p.Ordem4Resultado.Equals("A")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem4Resultado != null && p.Ordem4Resultado.Equals("E")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem4Resultado != null && p.Ordem4Resultado.Equals("NR")).Count(),
                                totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem4Resultado != null &&
                                                                        (p.Ordem4Resultado.Equals("A") || p.Ordem4Resultado.Equals("NR") || p.Ordem4Resultado.Equals("E"))).Count()
                            };
                            graficos.Add(item);
                        }
                        break;

                    case 5:
                        item.Name = CadastraLegenda(Proficiency, ordem, CodigoCurso, true);

                        item.Idea = new List <int> {
                            listaAlunosTurma.Where(p => p.Ordem5Ideia != null && p.Ordem5Ideia.Equals("A")).Count(),
                            listaAlunosTurma.Where(p => p.Ordem5Ideia != null && p.Ordem5Ideia.Equals("E")).Count(),
                            listaAlunosTurma.Where(p => p.Ordem5Ideia != null && p.Ordem5Ideia.Equals("NR")).Count(),
                            totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem5Ideia != null &&
                                                                    (p.Ordem5Ideia.Equals("A") || p.Ordem5Ideia.Equals("NR") || p.Ordem5Ideia.Equals("E"))).Count()
                        };
                        item.Result = new List <int> {
                            listaAlunosTurma.Where(p => p.Ordem5Resultado != null && p.Ordem5Resultado.Equals("A")).Count(),
                            listaAlunosTurma.Where(p => p.Ordem5Resultado != null && p.Ordem5Resultado.Equals("E")).Count(),
                            listaAlunosTurma.Where(p => p.Ordem5Resultado != null && p.Ordem5Resultado.Equals("NR")).Count(),
                            totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem5Resultado != null &&
                                                                    (p.Ordem5Resultado.Equals("A") || p.Ordem5Resultado.Equals("NR") || p.Ordem5Resultado.Equals("E"))).Count()
                        };
                        graficos.Add(item);
                        break;

                    case 6:
                        if (!CodigoCurso.Equals("3"))
                        {
                            item.Name = CadastraLegenda(Proficiency, ordem, CodigoCurso, true);
                            item.Idea = new List <int> {
                                listaAlunosTurma.Where(p => p.Ordem6Ideia != null && p.Ordem6Ideia.Equals("A")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem6Ideia != null && p.Ordem6Ideia.Equals("E")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem6Ideia != null && p.Ordem6Ideia.Equals("NR")).Count(),
                                totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem6Ideia != null &&
                                                                        (p.Ordem6Ideia.Equals("A") || p.Ordem6Ideia.Equals("NR") || p.Ordem6Ideia.Equals("E"))).Count()
                            };
                            item.Result = new List <int> {
                                listaAlunosTurma.Where(p => p.Ordem6Resultado != null && p.Ordem6Resultado.Equals("A")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem6Resultado != null && p.Ordem6Resultado.Equals("E")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem6Resultado != null && p.Ordem6Resultado.Equals("NR")).Count(),
                                totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem6Resultado != null &&
                                                                        (p.Ordem6Resultado.Equals("A") || p.Ordem6Resultado.Equals("NR") || p.Ordem6Resultado.Equals("E"))).Count()
                            };
                            graficos.Add(item);
                        }
                        break;

                    case 7:

                        if (!CodigoCurso.Equals("3"))
                        {
                            item.Name = CadastraLegenda(Proficiency, ordem, CodigoCurso, true);
                            item.Idea = new List <int> {
                                listaAlunosTurma.Where(p => p.Ordem7Ideia != null && p.Ordem7Ideia.Equals("A")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem7Ideia != null && p.Ordem7Ideia.Equals("E")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem7Ideia != null && p.Ordem7Ideia.Equals("NR")).Count(),
                                totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem7Ideia != null &&
                                                                        (p.Ordem7Ideia.Equals("A") || p.Ordem7Ideia.Equals("NR") || p.Ordem7Ideia.Equals("E"))).Count()
                            };
                            item.Result = new List <int> {
                                listaAlunosTurma.Where(p => p.Ordem7Resultado != null && p.Ordem7Resultado.Equals("A")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem7Resultado != null && p.Ordem7Resultado.Equals("E")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem7Resultado != null && p.Ordem7Resultado.Equals("NR")).Count(),
                                totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem7Ideia != null &&
                                                                        (p.Ordem7Ideia.Equals("A") || p.Ordem7Ideia.Equals("NR") || p.Ordem7Ideia.Equals("E"))).Count()
                            };
                            graficos.Add(item);
                        }
                        break;

                    case 8:

                        if (!CodigoCurso.Equals("3") && !CodigoCurso.Equals("4"))
                        {
                            item.Name = CadastraLegenda(Proficiency, ordem, CodigoCurso, true);
                            item.Idea = new List <int> {
                                listaAlunosTurma.Where(p => p.Ordem8Ideia != null && p.Ordem8Ideia.Equals("A")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem8Ideia != null && p.Ordem8Ideia.Equals("E")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem8Ideia != null && p.Ordem8Ideia.Equals("NR")).Count(),
                                totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem8Ideia != null &&
                                                                        (p.Ordem8Ideia.Equals("A") || p.Ordem8Ideia.Equals("NR") || p.Ordem8Ideia.Equals("E"))).Count()
                            };
                            item.Result = new List <int> {
                                listaAlunosTurma.Where(p => p.Ordem8Resultado != null && p.Ordem8Resultado.Equals("A")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem8Resultado != null && p.Ordem8Resultado.Equals("E")).Count(),
                                listaAlunosTurma.Where(p => p.Ordem8Resultado != null && p.Ordem8Resultado.Equals("NR")).Count(),
                                totalAlunosEol - listaAlunosTurma.Where(p => p.Ordem8Resultado != null &&
                                                                        (p.Ordem8Resultado.Equals("A") || p.Ordem8Resultado.Equals("NR") || p.Ordem8Resultado.Equals("E"))).Count()
                            };
                            graficos.Add(item);
                        }
                        break;
                    }
                }
            }

            result.Results   = relatorio;
            result.ChartData = graficos;

            return(result);
        }