public List <ZAdmin_RN.ProcessoElastic.Processos_Seae> RetornarListCapturaProcessoElastic(ProcessoFiltro filtro, string servidorElasstic) { var node = new Uri(servidorElasstic); var settings = new ConnectionSettings(node); settings.DisableDirectStreaming(true); settings.DefaultIndex("promocoes"); var client = new ElasticClient(settings); if (filtro.dataIni == null) { filtro.dataIni = new DateTime(1900, 01, 01); } if (filtro.dataFim == null) { filtro.dataFim = new DateTime(2200, 01, 01); } var elastic = client.Search <ZAdmin_RN.ProcessoElastic.Processos_Seae>(s => s .Size(filtro.qtdRegistros) .Skip((filtro.pagina - 1) * filtro.qtdRegistros) //.Take(filtro.qtdRegistros) .Query(q => ( q.QueryString(qs => qs .DefaultField(f => f.numprocesso) .Query(filtro.palavrasChave.Replace("/", "//")) .DefaultOperator(Operator.Or) ) || q.QueryString(qs => qs .Fields(f => f .Field("comoparticipar") .Field("interessados") .Field("modalidade") .Field("nome") .Field("premios") .Field("situacaoatual") .Field("arquivos.textoarquivo") ) .Query(filtro.palavrasChave.Replace("/", "//")) .DefaultOperator(Operator.And) ) ) && (filtro.idempresa != 0 ? q.Term("empresas.idempresa", filtro.idempresa) : null) && q.DateRange(d => d .Field(f => f.dtprocesso) .GreaterThanOrEquals(string.Format("{0:yyyy-MM-dd}", filtro.dataIni)) .LessThanOrEquals(string.Format("{0:yyyy-MM-dd}", filtro.dataFim)) ) ) .Sort(x => filtro.ordenacao == "DtRegistroDESC" ? x.Descending(c => c.dtprocesso): filtro.ordenacao == "DtRegistroASC" ? x.Ascending(c => c.dtprocesso) : x.Descending(c => c.datasituacaoatual) ) ); //if (filtro.ordenacao == "DtRegistroDESC") // elastic.Documents.OrderByDescending(x => x.dtprocesso); //else if (filtro.ordenacao == "DtRegistroASC") // elastic.Documents.OrderBy(x => x.dtprocesso); ////else if (filtro.ordenacao == "DtSituacaoDESC") //// elastic.Documents.Select(x => x.situacoes.OrderByDescending(c => c.data)); //else // elastic.Documents.OrderByDescending(x => x.dtprocesso); //.Sort(x => x.Descending(c => c.dtprocesso)) /* * if (filtro.ordenacao == "DtRegistroDESC") * elastic.Sort(x => x.Descending(c => c.dtprocesso)); * else if (filtro.ordenacao == "DtRegistroASC") * return lista.OrderBy(x => x.dtprocesso).Skip((filtro.pagina - 1) * filtro.qtdRegistros).Take(filtro.qtdRegistros).ToList(); * else if (filtro.ordenacao == "DtSituacaoDESC") * return lista.OrderByDescending(x => x.situacoes.Select(c => c.data)).Skip((filtro.pagina - 1) * filtro.qtdRegistros).Take(filtro.qtdRegistros).ToList(); */ var lista = ( from p in elastic.Documents select new ZAdmin_RN.ProcessoElastic.Processos_Seae() { abrangencia_nacional = p.abrangencia_nacional, abrangestados = p.abrangestados, abrangmunicipios = p.abrangmunicipios, arquivos = p.arquivos, comoparticipar = p.comoparticipar, dtprocesso = p.dtprocesso, dtvigenciafim = p.dtvigenciafim, dtvigenciaini = p.dtvigenciaini, empresas = p.empresas, formacontemplacao = p.formacontemplacao, idprocesso = p.idprocesso, interessados = p.interessados, modalidade = p.modalidade, nome = p.nome, numdocs = p.numdocs, numprocesso = p.numprocesso, premios = p.premios, resumo = p.resumo, setores = p.setores, situacaoatual = p.situacaoatual, //situacoes = p.situacoes, solicitantes = p.solicitantes, valortotalpremios = p.valortotalpremios } ).ToList(); this.TotalRegistros = Convert.ToInt32(elastic.Total); // lista.Count(); return(lista); //.Skip((filtro.pagina - 1) * filtro.qtdRegistros).Take(filtro.qtdRegistros).ToList(); }
public List <Processo> RetornarListCapturaProcesso(ProcessoFiltro filtro) { var listaProcesso = (from sp in db.seae_processos where sp.dtprocesso >= filtro.dataIni && sp.dtprocesso <= filtro.dataFim && sp.interessados.Contains(filtro.palavrasChave) && //( // filtro.situacao > 0 ? // sp.seae_mov_situacao.Where(x => x.idprocesso == sp.idprocesso && x.idsituacao == filtro.situacao).OrderByDescending(x => x.dtsituacao).FirstOrDefault().idsituacao == filtro.situacao : // true //) && //sp.premios.Contains(filtro.palavrasChave) && //sp.seae_processo_solicitantes.Where(x => x.solicitante.Contains(filtro.palavrasChave)).FirstOrDefault().cnpj != "" && //sp.numprocesso == filtro.numProcesso && //( // from cnpjEmp in db.cnpjempresa // join cnpjSolicitante in sp.seae_processo_solicitantes on cnpjEmp.cnpj equals cnpjSolicitante.cnpj // where cnpjEmp.idempresa == filtro.empresa // select cnpjSolicitante //).FirstOrDefault().cnpj != "" && sp.excluido == false select new Processo { idprocesso = sp.idprocesso, dtprocesso = sp.dtprocesso, numprocesso = sp.numprocesso, interessados = sp.interessados, numdoc = sp.numdocs, situacoes = sp.seae_mov_situacao.Select(s => new Situacao() { data = s.dtsituacao, descricao = s.seae_situacoes.descricao, idsituacao = s.idsituacao }), arquivos = sp.seae_arquivos_proc.Select(x => new Arquivo() { idarquivo = x.idarquivo, numdoc = x.numdoc, coordenacao = x.coordenacao, situacao = x.situacao, link = x.link }), setores = sp.seae_processo_setor.Select(s => new Setor() { codsetor = s.seae_setores_proc.codsetor, idsetor = s.idsetor, descricao = s.seae_setores_proc.descricao }) } ); this.TotalRegistros = listaProcesso.Count(); if (filtro.ordenacao == "DtRegistroDESC") { return(listaProcesso.OrderByDescending(x => x.dtprocesso).Skip((filtro.pagina - 1) * filtro.qtdRegistros).Take(filtro.qtdRegistros).ToList()); } else if (filtro.ordenacao == "DtRegistroASC") { return(listaProcesso.OrderBy(x => x.dtprocesso).Skip((filtro.pagina - 1) * filtro.qtdRegistros).Take(filtro.qtdRegistros).ToList()); } else if (filtro.ordenacao == "DtSituacaoDESC") { return(listaProcesso.OrderBy(x => x.dtprocesso).Skip((filtro.pagina - 1) * filtro.qtdRegistros).Take(filtro.qtdRegistros).ToList()); } else { return(listaProcesso.OrderByDescending(x => x.dtprocesso).Skip((filtro.pagina - 1) * filtro.qtdRegistros).Take(filtro.qtdRegistros).ToList()); } }