protected bool PerformSearchEntity(string query, int page)
    {
        Debug.Print("PerformSearch: {0}", query);
        Stopwatch sw = new Stopwatch();

        sw.Start();

        DateTime       start  = DateTime.Now;
        PXEntitySearch search = new PXEntitySearch();

        search.Category = GetCategory();

        if (!search.IsFullText())
        {
            ShowFullTextWarning();
        }

        List <EntitySearchResult> searchResults = search.Search(query, page, 10);

        if (searchResults.Count == 0)
        {
            if (!search.IsSearchIndexExists())
            {
                DisplayIndexTips();
            }
            else
            {
                DisplaySearchTips(query);
            }

            return(false);
        }

        RenderResultsEntity(searchResults);


        linkPrev.Visible = search.HasPrevPage;
        linkNext.Visible = search.HasNextPage;
        StorePages(-search.PreviousIndex, search.NextIndex);


        sw.Stop();
        Debug.Print("PerformSearch Completed in {0} millisec.", sw.ElapsedMilliseconds);

        return(true);
    }
        public virtual IEnumerable obfuscatedItems()
        {
            string query = null;

            foreach (PXFilterRow filter in PXView.Filters)
            {
                query += filter.Value + " ";
            }

            query = query?.Trim();

            if (!String.IsNullOrWhiteSpace(query))
            {
                var searchGraph = new PXEntitySearch();

                if (searchGraph.IsFullText())
                {
                    if (!IsExactMatch(query))
                    {
                        if (FullTextCapability.Value == BqlFullTextRenderingMethod.MySqlMatchAgainst)
                        {
                            query = ConvertToContainsPaternMySql(query);
                        }
                        else
                        {
                            query = ConvertToContainsPatern(query);
                        }
                    }

                    var selectIndexed = new PXSelectReadonly <SMPersonalDataIndex, Where <Contains <SMPersonalDataIndex.content, Required <SMPersonalDataIndex.content>, SMPersonalDataIndex.indexID> >, OrderBy <Desc <RankOf <SMPersonalDataIndex.content> > > >(this);

                    return(selectIndexed.Select(query));
                }
                else
                {
                    var selectNonIndexed = new PXSelectReadonly <SearchIndex, Where <SearchIndex.content, Like <Required <SearchIndex.content> > > >(this);

                    return(selectNonIndexed.Select(string.Format("%{0}%", query)));
                }
            }

            var select = new PXSelectReadonly <SMPersonalDataIndex>(this);

            return(select.Select());
        }