private List <GraficoOrdem> CriaGraficosConsolidados(RelatorioConsolidadoCapacidadeLeituraDTO relatorio) { var listaGraficos = new List <GraficoOrdem>(); relatorio.RelatorioPorOrdem.ForEach(o => { var graficoOrdem = new GraficoOrdem(); graficoOrdem.Ordem = o.Ordem; graficoOrdem.perguntasGrafico = new List <Grafico>(); o.Perguntas.ForEach(p => { var grafico = new Grafico(); grafico.NomeGrafico = p.Nome; p.Respostas.ForEach(r => { var barra = new GraficoBarra(); barra.Label = r.Nome; barra.Value = r.quantidade; grafico.Barras.Add(barra); }); graficoOrdem.perguntasGrafico.Add(grafico); }); listaGraficos.Add(graficoOrdem); }); return(listaGraficos); }
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); }