コード例 #1
0
        public static async Task <int> BuscaTotalDeAlunosEOl(filtrosRelatorioDTO filtro)
        {
            var DatasPeriodo = await BuscaDatasPeriodoFixoAnual(filtro);

            if (DatasPeriodo.Count() == 0)
            {
                return(0);
            }

            var endpointsApi = new EndpointsAPI();
            var alunoApi     = new AlunosAPI(endpointsApi);

            var filtroAlunos = new FiltroTotalAlunosAtivos()
            {
                AnoLetivo  = filtro.AnoLetivo,
                AnoTurma   = filtro.AnoEscolar,
                DreId      = filtro.CodigoDre,
                UeId       = filtro.CodigoUe,
                DataInicio = DatasPeriodo.First().DataInicio,
                DataFim    = DatasPeriodo.First().DataFim
            };


            var totalDeAlunos = await alunoApi.ObterTotalAlunosAtivosPorPeriodo(filtroAlunos);

            return(totalDeAlunos);
        }
コード例 #2
0
        public async Task <IEnumerable <AlunosNaTurmaDTO> > ObterAlunosEOL(string schoolYear, string codigoTurmaEol, string term)
        {
            filtrosRelatorioDTO filtro = new filtrosRelatorioDTO()
            {
                AnoLetivo = int.Parse(schoolYear),
                PeriodoId = ""
            };

            using (var contexto = new SMEManagementContextData())
            {
                var periodo = contexto.Periodo.Where(x => x.Descricao == term).FirstOrDefault();
                filtro.PeriodoId = periodo.Id;
            }

            var periodos = await ConsultaTotalDeAlunos.BuscaDatasPeriodoFixoAnual(filtro);

            if (periodos.Count() == 0)
            {
                throw new Exception("Período fixo anual não encontrado");
            }

            var endpoits = new EndpointsAPI();
            var alunoApi = new AlunosAPI(endpoits);

            return((await alunoApi.ObterAlunosAtivosPorTurmaEPeriodo(codigoTurmaEol, periodos.First().DataFim)).OrderBy(a => a.NomeAluno));
        }
コード例 #3
0
 public RelatorioPortuguesCapacidadeLeitura()
 {
     alunoAPI = new AlunosAPI(new EndpointsAPI());
 }
コード例 #4
0
        public async Task <RelatorioMatematicaPorTurmaDTO> ObterRelatorioPorTurma(filtrosRelatorioDTO filtro)
        {
            IncluiIdDoComponenteCurricularEhDoPeriodoNoFiltro(filtro);
            var periodos = await ConsultaTotalDeAlunos.BuscaDatasPeriodoFixoAnual(filtro);

            if (periodos.Count() == 0)
            {
                throw new Exception("Periodo fixo anual nao encontrado");
            }

            var endpoits  = new EndpointsAPI();
            var alunoApi  = new AlunosAPI(endpoits);
            var alunosEol = await alunoApi.ObterAlunosAtivosPorTurmaEPeriodo(filtro.CodigoTurmaEol, periodos.First().DataFim);

            var QueryAlunosRespostas = ConsultasRelatorios.QueryRelatorioPorTurmaMatematica();
            var listaAlunoRespostas  = await RetornaListaRespostasAlunoPorTurma(filtro, QueryAlunosRespostas);

            var AlunosAgrupados = listaAlunoRespostas.GroupBy(x => x.CodigoAluno);
            var relatorio       = new RelatorioMatematicaPorTurmaDTO();

            await RetornaPerguntasDoRelatorio(filtro, relatorio);

            var ListaAlunos = new List <AlunoPorTurmaRelatorioDTO>();

            alunosEol.ForEach(alunoRetorno =>
            {
                var aluno         = new AlunoPorTurmaRelatorioDTO();
                aluno.CodigoAluno = alunoRetorno.CodigoAluno;
                aluno.NomeAluno   = alunoRetorno.NomeAlunoRelatorio;
                aluno.Perguntas   = new List <PerguntaRespostaPorAluno>();

                var alunoRespostas = AlunosAgrupados.Where(x => x.Key == aluno.CodigoAluno.ToString()).ToList();

                foreach (var perguntaBanco in relatorio.Perguntas)
                {
                    var pergunta = new PerguntaRespostaPorAluno()
                    {
                        Id    = perguntaBanco.Id,
                        Valor = string.Empty
                    };

                    var respostaAluno = listaAlunoRespostas.Where(x => x.PerguntaId == perguntaBanco.Id && x.CodigoAluno == aluno.CodigoAluno.ToString()).FirstOrDefault();
                    if (respostaAluno != null)
                    {
                        pergunta.Valor = respostaAluno.RespostaDescricao;
                    }
                    aluno.Perguntas.Add(pergunta);
                }
                ListaAlunos.Add(aluno);
            });
            relatorio.Alunos   = ListaAlunos.OrderBy(aluno => aluno.NomeAluno);
            relatorio.Graficos = new List <GraficosRelatorioDTO>();


            using (var contexto = new SMEManagementContextData())
            {
                var perguntasBanco = await contexto.PerguntaResposta.Include(x => x.Pergunta).Include(y => y.Resposta).Where(pr => relatorio.Perguntas.Any(p => p.Id == pr.Pergunta.Id)).ToListAsync();


                foreach (var pergunta in relatorio.Perguntas)
                {
                    var grafico = new GraficosRelatorioDTO();
                    grafico.nomeGrafico = pergunta.Nome;
                    grafico.Barras      = new List <BarrasGraficoDTO>();
                    var listaRespostas = perguntasBanco.Where(x => x.Pergunta.Id == pergunta.Id).ToList();

                    listaRespostas.ForEach(resposta =>
                    {
                        var barra   = new BarrasGraficoDTO();
                        barra.label = resposta.Resposta.Descricao;
                        barra.value = relatorio.Alunos.Count(x => x.Perguntas.Any(r => r.Id == pergunta.Id && r.Valor == resposta.Resposta.Descricao));
                        grafico.Barras.Add(barra);
                    });

                    var barraAlunosSemPreenchimento = new BarrasGraficoDTO();
                    barraAlunosSemPreenchimento.label = "Sem Preenchimento";
                    barraAlunosSemPreenchimento.value = relatorio.Alunos.Count() - grafico.Barras.Sum(x => x.value);
                    grafico.Barras.Add(barraAlunosSemPreenchimento);
                    relatorio.Graficos.Add(grafico);
                }
            }
            return(relatorio);
        }
コード例 #5
0
 public RelatorioPortugues()
 {
     alunoAPI = new AlunosAPI(new EndpointsAPI());
 }