public IQueryable <Questionario> ListaQuestionario(DTOFiltroRelatorioQuestionario filtro)
        {
            var resultado = new ManterQuestionario().ObterTodosIQueryable();

            if (filtro.IdTurma != null)
            {
                resultado = resultado.Where(x => x.ListaQuestionarioParticipacao.Any(y => y.Turma.ID == filtro.IdTurma));
            }

            if (filtro.IdOferta != null)
            {
                resultado = resultado.Where(x => x.ListaQuestionarioParticipacao.Any(y => y.Turma.Oferta.ID == filtro.IdOferta));
            }

            if (filtro.IdSolucaoEducacional != null)
            {
                resultado = resultado.Where(x => x.ListaQuestionarioParticipacao.Any(y => y.Turma.Oferta.SolucaoEducacional.ID == filtro.IdSolucaoEducacional));
            }

            if (filtro.IdProcesso != null)
            {
                resultado = resultado.Where(x => x.ListaCampos.Any(c => c.Etapa.Processo.ID == filtro.IdProcesso));
            }

            if (filtro.IdTipoQuestionario != null)
            {
                resultado = resultado.Where(x => x.TipoQuestionario.ID == filtro.IdTipoQuestionario);
            }

            return(resultado);
        }
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }

            try
            {
                var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

                var listaQuestionario = new ManterQuestionario().ObterQuestionarioPorUf(usuarioLogado);

                var text = txtNome.Text.Trim().ToLower();

                if (!string.IsNullOrWhiteSpace(text))
                {
                    listaQuestionario = listaQuestionario.Where(x => x.Nome.Trim().ToLower().Contains(text));
                }

                var idsUfs = ListBoxesUF.RecuperarIdsSelecionados <int>().ToList();

                if (idsUfs.Count > 0)
                {
                    listaQuestionario = listaQuestionario.Where(x => x.Uf != null && idsUfs.Contains(x.Uf.ID));
                }

                var idsTiposQuestionario = ListBoxesTipoQuestionario.RecuperarIdsSelecionados <int>().ToList();

                if (idsTiposQuestionario.Count > 0)
                {
                    listaQuestionario =
                        listaQuestionario.Where(x => idsTiposQuestionario.Contains(x.TipoQuestionario.ID));
                }

                var status = int.Parse(ddlStatus.SelectedValue);

                if (status == 1)
                {
                    listaQuestionario = listaQuestionario.Where(x => x.Ativo == true);
                }

                if (status == 2)
                {
                    listaQuestionario = listaQuestionario.Where(x => x.Ativo != true);
                }

                if (listaQuestionario.Any())
                {
                    WebFormHelper.PreencherGrid(listaQuestionario.ToList(), dgvQuestionarios);
                    pnlQuestionario.Visible = true;
                }
                else
                {
                    pnlQuestionario.Visible = false;
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Nenhuma Informação Encontrada");
                }
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }