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, "")); }
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) }); }