private void AdicionarTotalEstudantes(ResumoPAPTotalEstudantesDto totalEstudantes, List <ResumoPAPGraficoDto> graficos) { var grafico = new ResumoPAPGraficoDto(); var legendas = new List <GraficoBarrasLegendaDto>(); int chaveIndex = 0; grafico.Titulo = "Total Estudantes"; var graficoAno = new ResumoPAPGraficoAnoDto(420, "Total Estudante"); foreach (var ano in totalEstudantes.Anos) { string chave = lstChaves[chaveIndex++].ToString(); legendas.Add(new GraficoBarrasLegendaDto() { Chave = chave, Valor = $"{ano.AnoDescricao}" }); graficoAno.EixosX.Add(new GraficoBarrasPAPVerticalEixoXDto(ano.Quantidade, (decimal)Math.Round(ano.Porcentagem, 0), chave)); } var valorMaximoEixo = graficoAno.EixosX.Max(a => int.Parse(a.Valor.ToString())); graficoAno.EixoYConfiguracao = new GraficoBarrasPAPVerticalEixoYDto(350, "Alunos", valorMaximoEixo.ArredondaParaProximaDezena(), 10); graficoAno.Legendas = legendas; grafico.Graficos.Add(graficoAno); graficos.Add(grafico); }
private void AdicionarTotalFrequencia(ResumoPAPTotalEstudantePorFrequenciaDto totalFrequencia, List <ResumoPAPGraficoDto> graficos) { var grafico = new ResumoPAPGraficoDto(); grafico.Titulo = "Frequência"; var anos = totalFrequencia.Frequencia.SelectMany(f => f.Linhas) .SelectMany(f => f.Anos).Select(f => new { f.CodigoAno, f.DescricaoAno }) .DistinctBy(f => f.CodigoAno); foreach (var ano in anos) { var graficoAno = new ResumoPAPGraficoAnoDto(420, $"{ano.DescricaoAno} ANO"); var legendas = new List <GraficoBarrasLegendaDto>(); int chaveIndex = 0; foreach (var frequencia in totalFrequencia.Frequencia) { if (frequencia.FrequenciaDescricao.ToLower() != "total") { string chave = lstChaves[chaveIndex++].ToString(); legendas.Add(new GraficoBarrasLegendaDto() { Chave = chave, Valor = $"{frequencia.FrequenciaDescricao}" }); var itemFrequencia = frequencia.Linhas.FirstOrDefault().Anos.FirstOrDefault(d => d.CodigoAno == ano.CodigoAno); if (itemFrequencia == null) { itemFrequencia = new ResumoPAPTotalFrequenciaAnoDto() { Quantidade = 0, Porcentagem = 0 } } ; graficoAno.EixosX.Add(new GraficoBarrasPAPVerticalEixoXDto(itemFrequencia.Quantidade, (decimal)Math.Round(itemFrequencia.Porcentagem, 0), chave)); } } var valorMaximoEixo = graficoAno.EixosX.Max(a => int.Parse(a.Valor.ToString())); graficoAno.EixoYConfiguracao = new GraficoBarrasPAPVerticalEixoYDto(350, "Alunos", valorMaximoEixo.ArredondaParaProximaDezena(), 10); graficoAno.Legendas = legendas; grafico.Graficos.Add(graficoAno); } graficos.Add(grafico); }
private void AdicionarResultado(IEnumerable <ResumoPAPTotalResultadoDto> resultados, List <ResumoPAPGraficoDto> graficos) { foreach (var resultado in resultados) { foreach (var objetivo in resultado.Objetivos) { var grafico = new ResumoPAPGraficoDto(); grafico.Titulo = $"{resultado.EixoDescricao} - {objetivo.ObjetivoDescricao}"; foreach (var ano in objetivo.Anos) { var graficoAno = new ResumoPAPGraficoAnoDto(420, $"{ano.AnoDescricao} ANO"); var legendas = new List <GraficoBarrasLegendaDto>(); int chaveIndex = 0; foreach (var resposta in ano.Respostas.Where(r => r.Quantidade > 0)?.OrderBy(o => o.Ordem)) { string chave = lstChaves[chaveIndex++].ToString(); legendas.Add(new GraficoBarrasLegendaDto() { Chave = chave, Valor = $"{resposta.RespostaNome}" }); graficoAno.EixosX.Add(new GraficoBarrasPAPVerticalEixoXDto(resposta.Quantidade, (decimal)Math.Round(resposta.Porcentagem, 0), chave)); } if (graficoAno.EixosX.Any()) { var valorMaximoEixo = graficoAno.EixosX.Max(a => int.Parse(a.Valor.ToString())); graficoAno.EixoYConfiguracao = new GraficoBarrasPAPVerticalEixoYDto(350, "Alunos", valorMaximoEixo.ArredondaParaProximaDezena(), 10); graficoAno.Legendas = legendas; grafico.Graficos.Add(graficoAno); } } graficos.Add(grafico); } } }