public async Task <bool> Handle(GerarRelatorioControleGradeAnaliticoCommand request, CancellationToken cancellationToken) { var dto = new ControleGradeDto(); var modalidadeCalendario = request.Filtros.ModalidadeTurma == Modalidade.EJA ? ModalidadeTipoCalendario.EJA : request.Filtros.ModalidadeTurma == Modalidade.Infantil ? ModalidadeTipoCalendario.Infantil : ModalidadeTipoCalendario.FundamentalMedio; var tipoCalendarioId = await mediator.Send(new ObterIdTipoCalendarioPorAnoLetivoEModalidadeQuery(request.Filtros.AnoLetivo, modalidadeCalendario, request.Filtros.Semestre)); foreach (long turmaId in request.Filtros.Turmas) { var aulasPrevistasTurma = new List <AulaPrevistaBimestreQuantidade>(); foreach (long componenteCurricularId in request.Filtros.ComponentesCurriculares) { var aulasPrevistasBimestresComponente = await mediator.Send(new ObterAulasPrevistasDadasQuery(turmaId, componenteCurricularId, tipoCalendarioId)); if (aulasPrevistasBimestresComponente.Any()) { aulasPrevistasTurma.AddRange(aulasPrevistasBimestresComponente); } } if (aulasPrevistasTurma.Any()) { dto.Turmas.Add(await MapearParaTurmaDto(aulasPrevistasTurma, request.Filtros.Bimestres, turmaId, tipoCalendarioId, request.Filtros.ModalidadeTurma)); } } await MontarCabecalhoRelatorioDto(dto, request.Filtros); return(!string.IsNullOrEmpty(await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioControleGradeAnalitico", dto, request.CodigoCorrelacao, "", "Relatório Controle de Grade Analítico", true, "RELATÓRIO CONTROLE DE GRADE ANALÍTICO")))); }
private string ObterNomeComponente(RelatorioControleGradeFiltroDto filtros, ControleGradeDto dto) { return(filtros.ComponentesCurriculares.Count() > 1 ? "Todos" : !dto.Turmas.Any() || !dto.Turmas.First().Bimestres.Any() || !dto.Turmas.First().Bimestres.First().ComponentesCurriculares.Any() ? "" : dto.Turmas.First().Bimestres.First().ComponentesCurriculares.First().Nome); }
private async Task MontarCabecalhoRelatorioDto(ControleGradeDto dto, RelatorioControleGradeFiltroDto filtros) { var turmaId = filtros.Turmas.First(); var turma = await mediator.Send(new ObterTurmaResumoComDreUePorIdQuery(turmaId)); dto.Filtro.Dre = turma.Ue.Dre.Abreviacao; dto.Filtro.Ue = $"{turma.Ue.CodigoUe} - {turma.Ue.TipoEscola.ShortName()} {turma.Ue.Nome}"; dto.Filtro.Turma = filtros.Turmas.Count() > 1 ? "Todas" : $"{turma.Modalidade.ShortName()} - {turma.Nome}"; dto.Filtro.Bimestre = filtros.Bimestres.Count() == QuantidadePeriodosPorModalidade(turma.Modalidade) ? "Todos" : string.Join(",", filtros.Bimestres); dto.Filtro.ComponenteCurricular = ObterNomeComponente(filtros, dto); dto.Filtro.Usuario = filtros.UsuarioNome; dto.Filtro.RF = filtros.UsuarioRf; }