public async Task <RelatorioConsolidadoDTO> ObterRelatorioMatematicaAutoral(filtrosRelatorioDTO filtro) { IncluiIdDoComponenteCurricularEhDoPeriodoNoFiltro(filtro); int totalDeAlunos = await ConsultaTotalDeAlunos.BuscaTotalDeAlunosEOl(filtro); var query = ConsultasRelatorios.QueryRelatorioMatematicaAutoral(filtro); var relatorio = new RelatorioConsolidadoDTO(); using (var conexao = new NpgsqlConnection(Environment.GetEnvironmentVariable("sondagemConnection"))) { relatorio.Perguntas = await RetornaRelatorioMatematica(filtro, conexao, query, totalDeAlunos); } relatorio.Graficos = new List <GraficosRelatorioDTO>(); foreach (var pergunta in relatorio.Perguntas) { var grafico = new GraficosRelatorioDTO(); grafico.nomeGrafico = pergunta.Nome; grafico.Barras = new List <BarrasGraficoDTO>(); pergunta.Respostas.ForEach(resposta => { var barra = new BarrasGraficoDTO(); barra.label = resposta.Nome; barra.value = resposta.quantidade; grafico.Barras.Add(barra); }); relatorio.Graficos.Add(grafico); } return(relatorio); }
public async Task <RelatorioConsolidadoCapacidadeLeituraDTO> ObterRelatorioCapacidadeLeitura(RelatorioPortuguesFiltroDto filtro) { var filtrosRelatorio = CriaMapFiltroRelatorio(filtro); int totalDeAlunos = await ConsultaTotalDeAlunos.BuscaTotalDeAlunosEOl(filtrosRelatorio); var query = ConsultasRelatorios.MontaQueryConsolidadoCapacidadeLeitura(filtro); var relatorio = new RelatorioConsolidadoCapacidadeLeituraDTO(); var ListaPerguntaEhRespostasRelatorio = await RetornaListaDehPerguntasEhRespostas(filtro, query); var relatorioAgrupado = ListaPerguntaEhRespostasRelatorio.GroupBy(p => p.OrdermId).ToList(); relatorio.RelatorioPorOrdem = RetornaRelatorioPorOrdens(totalDeAlunos, relatorioAgrupado); relatorio.Graficos = CriaGraficosConsolidados(relatorio); return(relatorio); }