Esempio n. 1
0
        public async Task <Resposta <string> > Handle(GerarHorarioIndividualRelatorioConsulta request, CancellationToken cancellationToken)
        {
            var dados = await GerarDadosRelatorioIndividual(request);

            var bytesRelatorio = _relatorioServico.GerarRelatorioHorarioIndividual(dados);

            var base64 = Convert.ToBase64String(bytesRelatorio);

            return(new Resposta <string>(base64, ""));
        }
Esempio n. 2
0
        private async Task <HorarioIndividualRelatorioData> GerarDadosRelatorioIndividual(GerarHorarioIndividualRelatorioConsulta request)
        {
            var professor = await _professorRepositorio.Consultar(lnq => lnq.Codigo == request.CodigoProfessor);

            var cargos = await _cargoRepositorio.Listar(lnq => lnq.CodigoProfessor == request.CodigoProfessor &&
                                                        lnq.Ano == request.Ano &&
                                                        lnq.Semestre == request.Semestre);

            if (cargos == null || cargos.Count <= 0)
            {
                return(new HorarioIndividualRelatorioData());
            }

            var cargosId = cargos.Select(lnq => lnq.Codigo);

            var disciplinasCargo = await _cargoDisciplinaRepositorio.Listar(lnq => cargosId.Contains(lnq.CodigoCargo));

            return(new HorarioIndividualRelatorioData
            {
                Ano = request.Ano,
                Semestre = request.Semestre.RetornarDescricao(),
                Cargo = cargos.Select(lnq => $"Cargo: {lnq.Numero} - Edital: {lnq.Edital}").Join(", "),
                Professor = professor.Nome,
                DisciplinasMinistradas = await ListarDisciplinasMinistradas(disciplinasCargo),
                Aulas = await CarregarAulas(disciplinasCargo)
            });
        }