public override IEnumerable <ComunicacaoViewModel> Bind(int?index, int pageSize = 50, params object[] param) { string path = System.Configuration.ConfigurationManager.AppSettings["Comunicados"].Replace("~", "..") + "/"; string _descricao = param != null && param.Count() > 0 && param[0] != null ? param[0].ToString() : null; return((from com in db.Comunicacaos join comGrupo in db.ComunicacaoGrupos on com.comunicacaoId equals comGrupo.comunicacaoId into COM from comGrupo in COM.DefaultIfEmpty() where (_descricao == null || String.IsNullOrEmpty(_descricao) || com.cabecalho.StartsWith(_descricao.Trim()) || com.resumo.StartsWith(_descricao.Trim()) || com.mensagemDetalhada.StartsWith(_descricao.Trim())) && comGrupo == null orderby com.dt_publicacao descending select new ComunicacaoViewModel { comunicacaoId = com.comunicacaoId, dt_comunicacao = com.dt_comunicacao, dt_publicacao = com.dt_publicacao, dt_expiracao = com.dt_expiracao, cabecalho = com.cabecalho, resumo = com.resumo, mensagemDetalhada = com.mensagemDetalhada, arq_imagem_300x200 = path + com.arq_imagem_300x200, arq_imagem_100x100 = path + com.arq_imagem_100x100, arq_imagem_400x300 = path + com.arq_imagem_400x300, grupoAssociadoId = comGrupo.grupoAssociadoId, PageSize = pageSize, TotalCount = (from com1 in db.Comunicacaos join comGrupo1 in db.ComunicacaoGrupos on com1.comunicacaoId equals comGrupo1.comunicacaoId into COM1 from comGrupo1 in COM1.DefaultIfEmpty() where (_descricao == null || String.IsNullOrEmpty(_descricao) || com1.cabecalho.StartsWith(_descricao.Trim()) || com1.resumo.StartsWith(_descricao.Trim()) || com1.mensagemDetalhada.StartsWith(_descricao.Trim())) && comGrupo1 == null select com1).Count() }).Skip((index ?? 0) * pageSize).Take(pageSize).ToList()); }