public override IEnumerable <ClienteViewModel> Bind(int?index, int pageSize = 50, params object[] param)
        {
            #region verifica o perfil do usuário logado
            EmpresaSecurity <SecurityContext> security = new EmpresaSecurity <SecurityContext>();
            security.seguranca_db = this.seguranca_db;
            string descricao_grupo = security._getUsuarioGrupo(sessaoCorrente.usuarioId).FirstOrDefault().descricao;
            #endregion

            string _nome      = param != null && param.Count() > 0 && param[0] != null ? param[0].ToString() : null;
            int?   _clienteId = null;

            if (param != null)
            {
                if (param.Count() == 2)
                {
                    _clienteId = param[1] != null ? (int?)param[1] : null;
                }
            }

            return((from q in
                    (from clnt in db.Clientes
                     join pro in db.Propostas on clnt.clienteId equals pro.clienteId
                     join emp in db.Empreendimentos on pro.empreendimentoId equals emp.empreendimentoId
                     join cor in db.Corretores on pro.corretor1Id equals cor.corretorId into COR
                     from cor in COR.DefaultIfEmpty()
                     where (_nome == null || String.IsNullOrEmpty(_nome) || clnt.nome.Contains(_nome.Trim()) || clnt.cpf_cnpj == _nome) &&
                     (!_clienteId.HasValue || clnt.clienteId == _clienteId) &&
                     ((descricao_grupo == "Corretor" && cor.email == sessaoCorrente.login) ||
                      (descricao_grupo == "Coordenador" && emp.login == sessaoCorrente.login) ||
                      (descricao_grupo == "Gerente de Equipe" && pro.login == sessaoCorrente.login) ||
                      (!"Corretor|Coordenador|Gerente de Equipe".Contains(descricao_grupo)))
                     select new ClienteViewModel
            {
                clienteId = clnt.clienteId,
                cpf_cnpj = clnt.cpf_cnpj,
                nome = clnt.nome,
                fone1 = clnt.fone1,
                fone2 = clnt.fone2,
                email = clnt.email,
                endereco = clnt.endereco,
                PageSize = pageSize,
                TotalCount = 0
            }).Union(from cli in db.Clientes
                     join p in db.Propostas on cli.clienteId equals p.clienteId into P
                     from p in P.DefaultIfEmpty()
                     where (_nome == null || String.IsNullOrEmpty(_nome) || cli.nome.Contains(_nome.Trim()) || cli.cpf_cnpj == _nome) &&
                     (!_clienteId.HasValue || cli.clienteId == _clienteId) &&
                     p == null
                     select new ClienteViewModel
            {
                clienteId = cli.clienteId,
                cpf_cnpj = cli.cpf_cnpj,
                nome = cli.nome,
                fone1 = cli.fone1,
                fone2 = cli.fone2,
                email = cli.email,
                endereco = cli.endereco,
                PageSize = pageSize,
                TotalCount = 0
            })
                    orderby q.nome
                    select new ClienteViewModel
            {
                clienteId = q.clienteId,
                cpf_cnpj = q.cpf_cnpj,
                nome = q.nome,
                fone1 = q.fone1,
                fone2 = q.fone2,
                email = q.email,
                endereco = q.endereco,
                PageSize = pageSize,
                TotalCount = (from q1 in (from clnt1 in db.Clientes
                                          join pro1 in db.Propostas on clnt1.clienteId equals pro1.clienteId
                                          join emp1 in db.Empreendimentos on pro1.empreendimentoId equals emp1.empreendimentoId
                                          join cor1 in db.Corretores on pro1.corretor1Id equals cor1.corretorId into COR1
                                          from cor1 in COR1.DefaultIfEmpty()
                                          where (_nome == null || String.IsNullOrEmpty(_nome) || clnt1.nome.Contains(_nome.Trim()) || clnt1.cpf_cnpj == _nome) &&
                                          (!_clienteId.HasValue || clnt1.clienteId == _clienteId) &&
                                          ((descricao_grupo == "Corretor" && cor1.email == sessaoCorrente.login) ||
                                           (descricao_grupo == "Coordenador" && emp1.login == sessaoCorrente.login) ||
                                           (descricao_grupo == "Gerente de Equipe" && pro1.login == sessaoCorrente.login) ||
                                           (!"Corretor|Coordenador|Gerente de Equipe".Contains(descricao_grupo)))
                                          select new ClienteViewModel
                {
                    clienteId = clnt1.clienteId,
                    cpf_cnpj = clnt1.cpf_cnpj,
                    nome = clnt1.nome,
                    fone1 = clnt1.fone1,
                    fone2 = clnt1.fone2,
                    email = clnt1.email,
                    endereco = clnt1.endereco,
                    PageSize = pageSize,
                    TotalCount = 0
                }).Union(from cli1 in db.Clientes
                         join p1 in db.Propostas on cli1.clienteId equals p1.clienteId into P1
                         from p1 in P1.DefaultIfEmpty()
                         where (_nome == null || String.IsNullOrEmpty(_nome) || cli1.nome.Contains(_nome.Trim()) || cli1.cpf_cnpj == _nome) &&
                         (!_clienteId.HasValue || cli1.clienteId == _clienteId) &&
                         p1 == null
                         select new ClienteViewModel()
                {
                    clienteId = cli1.clienteId,
                    cpf_cnpj = cli1.cpf_cnpj,
                    nome = cli1.nome,
                    fone1 = cli1.fone1,
                    fone2 = cli1.fone2,
                    email = cli1.email,
                    endereco = cli1.endereco,
                    PageSize = pageSize,
                    TotalCount = 0
                })
                              select q1).AsEnumerable().Count()
            }
                    ).Skip((index ?? 0) * pageSize).Take(pageSize).ToList());
        }
示例#2
0
        public override IEnumerable <EsteiraComentarioViewModel> Bind(int?index, int pageSize = 50, params object[] param)
        {
            #region verifica o perfil do usuário logado
            EmpresaSecurity <SecurityContext> security = new EmpresaSecurity <SecurityContext>();
            security.seguranca_db = this.seguranca_db;
            string descricao_grupo = security._getUsuarioGrupo(sessaoCorrente.usuarioId).FirstOrDefault().descricao;
            #endregion

            string _nome = null;
            if (param != null)
            {
                if (param.Count() > 0)
                {
                    if (param[0] != null)
                    {
                        _nome = param[0].ToString();
                    }
                }
            }

            return((from com in db.Comentarios
                    join est in db.Esteiras on com.esteiraId equals est.esteiraId
                    join eta in db.Etapas on est.etapaId equals eta.etapaId
                    join pro in db.Propostas on est.propostaId equals pro.propostaId
                    join cli in db.Clientes on pro.clienteId equals cli.clienteId
                    join emp in db.Empreendimentos on pro.empreendimentoId equals emp.empreendimentoId
                    join cor in db.Corretores on pro.corretor1Id equals cor.corretorId into COR
                    from cor in COR.DefaultIfEmpty()
                    where (_nome == null || _nome == "" || com.nome.Contains(_nome)) &&
                    pro.situacao == "A" &&
                    ((descricao_grupo == "Corretor" && cor.email == sessaoCorrente.login) ||
                     (descricao_grupo == "Coordenador" && emp.login == sessaoCorrente.login) ||
                     (descricao_grupo == "Gerente de Equipe" && pro.login == sessaoCorrente.login) ||
                     (!"Corretor|Coordenador|Gerente de Equipe".Contains(descricao_grupo)))
                    orderby com.dt_comentario descending
                    select new EsteiraComentarioViewModel()
            {
                esteiraId = est.esteiraId,
                propostaId = pro.propostaId,
                descricao_etapa = eta.descricao,
                dt_comentario = com.dt_comentario,
                observacao = com.observacao,
                usuarioId = com.usuarioId,
                nome = com.nome,
                login = com.login,
                nome_cliente = cli.nome,
                nome_empreendimento = emp.nomeEmpreend,
                PageSize = pageSize,
                TotalCount = (from com1 in db.Comentarios
                              join est1 in db.Esteiras on com1.esteiraId equals est1.esteiraId
                              join eta1 in db.Etapas on est1.etapaId equals eta1.etapaId
                              join pro1 in db.Propostas on est1.propostaId equals pro1.propostaId
                              join cli1 in db.Clientes on pro1.clienteId equals cli1.clienteId
                              join emp1 in db.Empreendimentos on pro1.empreendimentoId equals emp1.empreendimentoId
                              join cor1 in db.Corretores on pro1.corretor1Id equals cor1.corretorId into COR1
                              from cor1 in COR1.DefaultIfEmpty()
                              where (_nome == null || _nome == "" || com1.nome.Contains(_nome)) &&
                              pro1.situacao == "A" &&
                              ((descricao_grupo == "Corretor" && cor1.email == sessaoCorrente.login) ||
                               (descricao_grupo == "Coordenador" && emp1.login == sessaoCorrente.login) ||
                               (descricao_grupo == "Gerente de Equipe" && pro1.login == sessaoCorrente.login) ||
                               (!"Corretor|Coordenador|Gerente de Equipe".Contains(descricao_grupo)))
                              orderby com1.dt_comentario descending
                              select com1.esteiraId).Count()
            }).Skip((index ?? 0) * pageSize).Take(pageSize).ToList());
        }