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()); }
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()); }