Beispiel #1
0
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            // Perfis selecionados
            var perfisSelecionados = ucMultiplosPerfil.RecuperarIdsSelecionados <int>();

            // Niveis Ocupacionais selecionados
            var niveisOcupacionaisSelecionados = ucMultiplosNivelOcupacional.RecuperarIdsSelecionados <int>();

            // Ufs selecionados
            var ufsSelecionados = ucMultiplosUF.RecuperarIdsSelecionados <int>();

            //Usuario Selecionado
            var usuario = ucLupaUsuario.SelectedUser;

            var queryUsuarios = new ManterUsuario().ObterTodos();

            queryUsuarios = perfisSelecionados.Any() ? queryUsuarios.Where(x => x.ListaPerfil.Any(p => perfisSelecionados.Contains(p.Perfil.ID))) : queryUsuarios;
            queryUsuarios = niveisOcupacionaisSelecionados.Any() ? queryUsuarios.Where(x => niveisOcupacionaisSelecionados.Contains(x.NivelOcupacional.ID)) : queryUsuarios;
            queryUsuarios = ufsSelecionados.Any() ? queryUsuarios.Where(x => ufsSelecionados.Contains(x.UF.ID)) : queryUsuarios;
            queryUsuarios = usuario != null?queryUsuarios.Where(x => x.ID == usuario.ID) : queryUsuarios;

            if (queryUsuarios.Count() > 0)
            {
                var resultado = queryUsuarios.Select(x => new {
                    ID    = x.UF.ID,
                    Sigla = x.UF.Sigla
                })
                                .Distinct()
                                .ToList()
                                .OrderBy(x => x.ID)
                                .Select(x => new DTOUsuarioUF {
                    IDUf                 = x.ID,
                    Sigla                = x.Sigla,
                    Usuario              = usuario,
                    PerfisID             = perfisSelecionados.ToList(),
                    NivelsOcupacionaisID = niveisOcupacionaisSelecionados.ToList()
                }).ToList();

                rptPerfilUf.DataSource = resultado;
                rptPerfilUf.DataBind();

                var relatorio = queryUsuarios.ToList().Select(x => new DTORelatorioDadosPessoais {
                    UF               = x.UF.Sigla,
                    Nome             = x.Nome,
                    CPF              = x.CPF,
                    Email            = x.Email,
                    NivelOcupacional = x.NivelOcupacional.Nome,
                    Perfil           = String.Join("\n\r", x.ListaPerfil.Select(y => y.Perfil.Nome))
                }).ToList();


                Session.Add("dsRelatorio", relatorio);

                litContador.Text = queryUsuarios.Count().ToString();
                // Converter os resultados em dados totalizadores.
                var totalizadores = new List <DTOTotalizador>();

                totalizadores.Add(TotalizadorUtil.GetTotalizador(queryUsuarios.AsEnumerable(),
                                                                 "Totalizador", "ID", enumTotalizacaoRelatorio.Contar, false));

                UF.Visible               = chkListaCamposVisiveis.Items.FindByValue("UF").Selected;
                Nome.Visible             = chkListaCamposVisiveis.Items.FindByValue("Nome").Selected;
                CPF.Visible              = chkListaCamposVisiveis.Items.FindByValue("CPF").Selected;
                Email.Visible            = chkListaCamposVisiveis.Items.FindByValue("Email").Selected;
                NivelOcupacional.Visible = chkListaCamposVisiveis.Items.FindByValue("NivelOcupacional").Selected;
                Perfil.Visible           = chkListaCamposVisiveis.Items.FindByValue("Perfil").Selected;

                dvContador.Visible                 = true;
                pnlPerfilUsuario.Visible           = true;
                componenteGeracaoRelatorio.Visible = true;
            }
            else
            {
                pnlPerfilUsuario.Visible           = false;
                componenteGeracaoRelatorio.Visible = false;
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Nenhuma Informação Encontrada");
            }
        }