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()); }
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()); }
public async Task <PollReportPortugueseResult> BuscarDadosRelatorioPortugues(string proficiencia, string bimestre, string anoLetivo, string codigoDre, string codigoEscola, string codigoCurso) { var liststudentPollPortuguese = new List <StudentPollPortuguese>(); var listReturn = new List <PollReportPortugueseItem>(); using (Contexts.SMEManagementContext db = new Contexts.SMEManagementContext()) { var listStudentsPollPortuguese = new List <Models.Academic.PortuguesePoll>(); IQueryable <PortuguesePoll> query = db.Set <PortuguesePoll>(); query = db.PortuguesePolls.Where(x => x.schoolYear == anoLetivo); //montando filtros genericamente if (!string.IsNullOrWhiteSpace(codigoDre)) { query = query.Where(u => u.dreCodeEol == codigoDre); } if (!string.IsNullOrWhiteSpace(codigoEscola)) { query = query.Where(u => u.schoolCodeEol == codigoEscola); } if (!string.IsNullOrWhiteSpace(codigoCurso)) { query = query.Where(u => u.yearClassroom == codigoCurso); } List <SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel> graficos = new List <SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel>(); switch (bimestre) { case "1° Bimestre": { if (proficiencia == "Escrita") { var writing1B = query.GroupBy(fu => fu.writing1B).Select(g => new { Label = g.Key, Value = g.Count() }).ToList(); foreach (var item in writing1B) { if (!item.Label.Trim().Equals("")) { PollReportPortugueseItem itemRetorno = new PollReportPortugueseItem(); itemRetorno.OptionName = MontarTextoProficiencia(item.Label); itemRetorno.studentQuantity = item.Value; listReturn.Add(itemRetorno); graficos.Add(new SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel() { Name = MontarTextoProficiencia(item.Label), Value = item.Value }); } } } else //leitura { var reading1B = query.GroupBy(fu => fu.reading1B).Select(g => new { Label = g.Key, Value = g.Count() }).ToList(); foreach (var item in reading1B) { if (!item.Label.Trim().Equals("")) { PollReportPortugueseItem itemRetorno = new PollReportPortugueseItem(); itemRetorno.OptionName = MontarTextoProficiencia(item.Label); itemRetorno.studentQuantity = item.Value; listReturn.Add(itemRetorno); graficos.Add(new SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel() { Name = MontarTextoProficiencia(item.Label), Value = item.Value }); } } } } break; case "2° Bimestre": { if (proficiencia == "Escrita") { var writing2B = query.GroupBy(fu => fu.writing2B).Select(g => new { Label = g.Key, Value = g.Count() }).ToList(); foreach (var item in writing2B) { if (!item.Label.Trim().Equals("")) { PollReportPortugueseItem itemRetorno = new PollReportPortugueseItem(); itemRetorno.OptionName = MontarTextoProficiencia(item.Label); itemRetorno.studentQuantity = item.Value; listReturn.Add(itemRetorno); graficos.Add(new SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel() { Name = MontarTextoProficiencia(item.Label), Value = item.Value }); } } } else //leitura { var reading2B = query.GroupBy(fu => fu.reading2B).Select(g => new { Label = g.Key, Value = g.Count() }).ToList(); foreach (var item in reading2B) { if (!item.Label.Trim().Equals("")) { PollReportPortugueseItem itemRetorno = new PollReportPortugueseItem(); itemRetorno.OptionName = MontarTextoProficiencia(item.Label); itemRetorno.studentQuantity = item.Value; listReturn.Add(itemRetorno); graficos.Add(new SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel() { Name = MontarTextoProficiencia(item.Label), Value = item.Value }); } } } } break; case "3° Bimestre": { if (proficiencia == "Escrita") { var writing3B = query.GroupBy(fu => fu.writing3B).Select(g => new { Label = g.Key, Value = g.Count() }).ToList(); foreach (var item in writing3B) { if (!item.Label.Trim().Equals("")) { PollReportPortugueseItem itemRetorno = new PollReportPortugueseItem(); itemRetorno.OptionName = MontarTextoProficiencia(item.Label); itemRetorno.studentQuantity = item.Value; listReturn.Add(itemRetorno); graficos.Add(new SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel() { Name = MontarTextoProficiencia(item.Label), Value = item.Value }); } } } else //leitura { var reading3B = query.GroupBy(fu => fu.reading3B).Select(g => new { Label = g.Key, Value = g.Count() }).ToList(); foreach (var item in reading3B) { if (!item.Label.Trim().Equals("")) { PollReportPortugueseItem itemRetorno = new PollReportPortugueseItem(); itemRetorno.OptionName = MontarTextoProficiencia(item.Label); itemRetorno.studentQuantity = item.Value; listReturn.Add(itemRetorno); graficos.Add(new SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel() { Name = MontarTextoProficiencia(item.Label), Value = item.Value }); } } } } break; case "4° Bimestre": { if (proficiencia == "Escrita") { var writing4B = query.GroupBy(fu => fu.writing4B).Select(g => new { Label = g.Key, Value = g.Count() }).ToList(); foreach (var item in writing4B) { if (!item.Label.Trim().Equals("")) { PollReportPortugueseItem itemRetorno = new PollReportPortugueseItem(); itemRetorno.OptionName = MontarTextoProficiencia(item.Label); itemRetorno.studentQuantity = item.Value; listReturn.Add(itemRetorno); graficos.Add(new SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel() { Name = MontarTextoProficiencia(item.Label), Value = item.Value }); } } } else //leitura { var reading4B = query.GroupBy(fu => fu.reading4B).Select(g => new { Label = g.Key, Value = g.Count() }).ToList(); foreach (var item in reading4B) { if (!item.Label.Trim().Equals("")) { PollReportPortugueseItem itemRetorno = new PollReportPortugueseItem(); itemRetorno.OptionName = MontarTextoProficiencia(item.Label); itemRetorno.studentQuantity = item.Value; listReturn.Add(itemRetorno); graficos.Add(new SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel() { Name = MontarTextoProficiencia(item.Label), Value = item.Value }); } } } } break; } int total = 0; foreach (var item in listReturn) { total += item.studentQuantity; } foreach (var item in listReturn) { item.StudentPercentage = (double)item.studentQuantity / (double)total * 100; } SME.Pedagogico.Gestao.Data.DTO.PollReportPortugueseResult retorno = new PollReportPortugueseResult(); retorno.Results = listReturn; var listaGrafico = graficos.GroupBy(fu => fu.Name).Select(g => new { Label = g.Key, Value = g.Sum(soma => soma.Value) }).ToList(); graficos = new List <SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel>(); foreach (var item in listaGrafico) { graficos.Add(new SME.Pedagogico.Gestao.Data.DTO.PortChartDataModel() { Name = item.Label, Value = item.Value }); } retorno.ChartData = graficos; return(retorno); } }