Exemplo n.º 1
0
        public void HandlePublishedSearchRequestsEvent(CriteriaUsageEventPayload eventPayload)
        {
            if (eventPayload == null)
            {
                throw new ArgumentNullException("eventPayload");
            }

            if (log.IsDebugEnabled)
            {
                log.Debug("Received published search requests event => " + eventPayload);
            }

            ISearch search = new SearchImpl();

            if (eventPayload.Criteria != null)
            {
                foreach (var criterion in eventPayload.Criteria)
                {
                    search.Criteria.Add(new SearchCriterionImpl {
                        ControlName = criterion.Key, ControlValue = criterion.Value
                    });
                }
            }

            Requests.Clear();
            Requests.AddRange(optionRequestPersistanceManager.GetRequestMatchingAdhocCriteria(search, false));
            NotifyPropertyChanged("Requests");

            if (!Requests.Any())
            {
                MessageBox.Show("No RFQs matching the search criteria were found!\nPlease broaden your search criteria.",
                                "No Search Results Returned.", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }
Exemplo n.º 2
0
        private void ExecuteQuery(MasterPanelPesquisaUF MasterPanel)
        {
            ToolBar_ButtonClick(this, new ToolBarButtonClickEventArgs(ToolBarButton2));
            List <string> resultadosDaPesquisa = new List <string>();

            try
            {
                ((frmMain)TopLevelControl).EnterWaitMode();
                this.lblFuncao.Text = string.Format("Resultados da pesquisa (em curso)");
                this.lblFuncao.Update();

                GisaDataSetHelper.ManageDatasetConstraints(false);

                GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
                try
                {
                    // TODO: Considerar retirar a dependência com Lucene.Net para fazer a validação dos campos: nem todos são validados....
                    UnidadeFisicaSearch          ufSearch = new UnidadeFisicaSearch();
                    Lucene.Net.Analysis.Analyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
                    QueryParser qp = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, string.Empty, analyzer);
                    qp.AllowLeadingWildcard = true;
                    StringBuilder errorMessage = new StringBuilder();

                    ufSearch.Numero                = Helper.AddFieldToSearch(qp, "Código Parcial", MasterPanelPesquisaUF.txtCdReferencia.Text, ref errorMessage);
                    ufSearch.Designacao            = Helper.AddFieldToSearch(qp, "Designação", MasterPanelPesquisaUF.txtDesignacao.Text, ref errorMessage);
                    ufSearch.Cota                  = Helper.AddFieldToSearch(qp, "Cota", Helper.EscapeSpecialCharactersCotaDocumento(MasterPanelPesquisaUF.txtCota.Text.ToLower()), ref errorMessage);
                    ufSearch.CodigoBarras          = Helper.AddFieldToSearch(qp, "CodigoBarras", MasterPanelPesquisaUF.txtCodigoBarras.Text, ref errorMessage);
                    ufSearch.ConteudoInformacional = Helper.AddFieldToSearch(qp, "Conteúdo Informacional", MasterPanelPesquisaUF.txtConteudoInformacional.Text, ref errorMessage);

                    // Nota: a combo MasterPanelPesquisaUF.cbTipoAcond contem uma lista de GISADataset.TipoAcondicionamentoRow
                    GISADataset.TipoAcondicionamentoRow tipoAcondRow = (GISADataset.TipoAcondicionamentoRow)MasterPanelPesquisaUF.cbTipoAcond.SelectedItem;

                    string tipoUnidadeFisica = tipoAcondRow.Designacao;
                    if (tipoUnidadeFisica.ToLower().Equals("todos"))
                    {
                        tipoUnidadeFisica = "";
                    }
                    else if (tipoUnidadeFisica.ToLower().Equals("<desconhecido>"))
                    {
                        tipoUnidadeFisica = "desconhecido";
                    }

                    ufSearch.TipoUnidadeFisica = Helper.AddFieldToSearch(qp, "Tipo de Unidade Física", tipoUnidadeFisica, ref errorMessage);
                    ufSearch.GuiaIncorporacao  = Helper.AddFieldToSearch(qp, "Guia incorporação", MasterPanelPesquisaUF.txtGuiaIncorporacao.Text, ref errorMessage);

                    ufSearch.Eliminado = MasterPanelPesquisaUF.chkFiltroUFsEliminadas.Checked ? "" : "nao";

                    if (MasterPanelPesquisaUF.cdbDataInicio.Checked)
                    {
                        ufSearch.DataProducaoInicioDoInicio = MasterPanelPesquisaUF.cdbDataInicio.GetStandardMaskDate.ToString("yyyyMMdd");
                    }

                    if (MasterPanelPesquisaUF.cdbDataFim.Checked)
                    {
                        ufSearch.DataProducaoFimDoInicio = MasterPanelPesquisaUF.cdbDataFim.GetStandardMaskDate.ToString("yyyyMMdd");
                    }

                    if (MasterPanelPesquisaUF.cdbInicioDoFim.Checked)
                    {
                        ufSearch.DataProducaoInicioDoFim = MasterPanelPesquisaUF.cdbInicioDoFim.GetStandardMaskDate.ToString("yyyyMMdd");
                    }

                    if (MasterPanelPesquisaUF.cdbFimDoFim.Checked)
                    {
                        ufSearch.DataProducaoFimDoFim = MasterPanelPesquisaUF.cdbFimDoFim.GetStandardMaskDate.ToString("yyyyMMdd");
                    }

                    if (errorMessage.Length > 0)
                    {
                        MessageBox.Show("O(s) campo(s) seguinte(s) tem(êm) valor(es) incorrecto(s): " +
                                        System.Environment.NewLine +
                                        errorMessage.ToString());

                        return;
                    }

                    resultadosDaPesquisa.AddRange(SearchImpl.search(ufSearch.ToString(), "unidadeFisica"));

                    // filtragens adicionais sobre os resultados de pesquisa
                    string operador        = string.Empty;
                    int    anoEdicaoInicio = int.MinValue;
                    int    mesEdicaoInicio = int.MinValue;
                    int    diaEdicaoInicio = int.MinValue;
                    int    anoEdicaoFim    = int.MinValue;
                    int    mesEdicaoFim    = int.MinValue;
                    int    diaEdicaoFim    = int.MinValue;
                    long   IDNivel         = long.MinValue;
                    int    assoc           = int.MinValue;

                    operador = MasterPanelPesquisaUF.txtOperador.Text;
                    assoc    = MasterPanelPesquisaUF.cbAssociacoes.SelectedIndex;

                    if (MasterPanelPesquisaUF.cdbDataEdicaoInicio.Checked)
                    {
                        anoEdicaoInicio = MasterPanelPesquisaUF.cdbDataEdicaoInicio.Year;
                        mesEdicaoInicio = MasterPanelPesquisaUF.cdbDataEdicaoInicio.Month;
                        diaEdicaoInicio = MasterPanelPesquisaUF.cdbDataEdicaoInicio.Day;
                    }

                    if (MasterPanelPesquisaUF.cdbDataEdicaoFim.Checked)
                    {
                        anoEdicaoFim = MasterPanelPesquisaUF.cdbDataEdicaoFim.Year;
                        mesEdicaoFim = MasterPanelPesquisaUF.cdbDataEdicaoFim.Month;
                        diaEdicaoFim = MasterPanelPesquisaUF.cdbDataEdicaoFim.Day;
                    }

                    if (MasterPanelPesquisaUF.chkEstruturaArquivistica.Checked && MasterPanelPesquisaUF.cnList.SelectedNivelRow != null)
                    {
                        IDNivel = MasterPanelPesquisaUF.cnList.SelectedNivelRow.ID;
                    }

                    PesquisaUFList1.SearchServerIDs = resultadosDaPesquisa;
                    PesquisaUFList1.operador        = operador;
                    PesquisaUFList1.anoEdicaoInicio = anoEdicaoInicio;
                    PesquisaUFList1.mesEdicaoInicio = mesEdicaoInicio;
                    PesquisaUFList1.diaEdicaoInicio = diaEdicaoInicio;
                    PesquisaUFList1.anoEdicaoFim    = anoEdicaoFim;
                    PesquisaUFList1.mesEdicaoFim    = mesEdicaoFim;
                    PesquisaUFList1.diaEdicaoFim    = diaEdicaoFim;
                    PesquisaUFList1.IDNivel         = IDNivel;
                    PesquisaUFList1.assoc           = assoc;
                    PesquisaUFList1.NewSearch       = true;

                    resultNumber = 0;
                    PesquisaUFList1.ReloadList();
                    PesquisaUFList1.NewSearch = false;
                    resultNumber = PesquisaUFList1.NrResults;
                    PesquisaUFList1.Focus();

                    Trace.WriteLine(string.Format("Found {0} results.", resultNumber));
                    this.lblFuncao.Text = string.Format("Resultados da pesquisa ({0} {1})", resultNumber, ((resultNumber == 1) ? "descrição" : "descrições"));

                    UpdateToolBarButtons();
                }
                catch (Exception ex)
                {
                    resultNumber = 0;
                    Trace.WriteLine(ex);
                    this.lblFuncao.Text = string.Format("Resultados da pesquisa");
                }
                finally
                {
                    ho.Dispose();
                }
                GisaDataSetHelper.ManageDatasetConstraints(true);
            }
            catch (Exception Ex)
            {
                Trace.WriteLine(Ex);
                this.lblFuncao.Text = string.Format("Resultados da pesquisa");
            }
            finally
            {
                ((frmMain)TopLevelControl).LeaveWaitMode();
            }
        }
Exemplo n.º 3
0
        public ISearch AddCriterionToRelatedSearch(string owner, string descriptionKey, string controlName, string controlValue, bool isPrivate, bool isFilter)
        {
            if (String.IsNullOrEmpty(owner))
            {
                throw new ArgumentException("owner");
            }

            if (String.IsNullOrEmpty(descriptionKey))
            {
                throw new ArgumentException("descriptionKey");
            }

            if (String.IsNullOrEmpty(controlName))
            {
                throw new ArgumentException("controlName");
            }

            if (String.IsNullOrEmpty(controlValue))
            {
                throw new ArgumentException("controlValue");
            }

            var criterion = new SearchCriterionImpl
            {
                ControlName    = controlName,
                ControlValue   = controlValue,
                Owner          = owner,
                DescriptionKey = descriptionKey,
                IsFilter       = isFilter,
                IsPrivate      = isPrivate
            };

            var searchToBeUpdated = Searches.FirstOrDefault((existingSearch) => (existingSearch.Owner == owner) && (existingSearch.DescriptionKey == descriptionKey));

            if (searchToBeUpdated == null)
            {
                if (log.IsDebugEnabled)
                {
                    log.Debug("Adding JSON search criterion to NON-EXISTENT search with owner: " + owner + " and key: " + descriptionKey);
                }

                var newSearch = new SearchImpl
                {
                    Owner          = criterion.Owner,
                    DescriptionKey = criterion.DescriptionKey,
                    IsFilter       = criterion.IsFilter,
                    IsPrivate      = criterion.IsPrivate,
                };
                newSearch.Criteria.Add(criterion);
                Searches.Add(newSearch);
                return(newSearch);
            }

            if (log.IsDebugEnabled)
            {
                log.Debug("Adding JSON search criterion to EXISTING search with owner: " + owner + " and key: " + descriptionKey);
            }

            searchToBeUpdated.Criteria.Add(criterion);
            return(searchToBeUpdated);
        }