コード例 #1
0
        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();
        }
コード例 #2
0
        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());
            }
        }