protected override bool PerformSearch(string query, bool isQuick) { DateTime start = DateTime.Now; PXEntitySearch search = new PXEntitySearch(); List <PXSearchResult> searchResults = new List <PXSearchResult>(); Search.NavigationHandler = delegate(string args) { return(NavHandler(args, searchResults)); }; search.IgnoreCache = Search.CurrentPage == 0 ? true : false; searchResults.AddRange(search.Search(query, Search.CurrentPage * 20, 20)); if (searchResults.Count == 0) { Search.DisplaySearchTips(query, SearchTips); return(false); } int i = Search.CurrentPage * 20; Search.MaxDescriptionColumns = search.MaxDescriptionColumns; foreach (PXEntitySearch.Result res in searchResults) { Search.DisplayResult(res); i++; } TimeSpan span = DateTime.Now.Subtract(start); Search.DisplayResult(PXMessages.LocalizeFormatNoPrefix(Messages.SearchResultsShort, HttpUtility.HtmlEncode(query), this.ctrlSearch.FormatTimeResult(span))); Search.PagesCount = search.TotalCount % 20 == 0 ? search.TotalCount / 20 : search.TotalCount / 20 + 1; Search.PagerHasPrev = search.HasPrevPage; Search.PagerHasNext = search.HasNextPage; return(true); }
protected override bool PerformSearch(string query, bool isQuick) { DateTime start = DateTime.Now; PXEntitySearch search = new PXEntitySearch(); List<PXSearchResult> searchResults = new List<PXSearchResult>(); Search.NavigationHandler = delegate(string args) { return NavHandler(args, searchResults); }; search.IgnoreCache = Search.CurrentPage == 0 ? true : false; searchResults.AddRange(search.Search(query, Search.CurrentPage * 20, 20)); if (searchResults.Count == 0) { Search.DisplaySearchTips(query, SearchTips); return false; } int i = Search.CurrentPage * 20; Search.MaxDescriptionColumns = search.MaxDescriptionColumns; foreach (PXEntitySearch.Result res in searchResults) { Search.DisplayResult(res); i++; } TimeSpan span = DateTime.Now.Subtract(start); Search.DisplayResult(PXMessages.LocalizeFormatNoPrefix(Messages.SearchResultsShort, HttpUtility.HtmlEncode(query), this.ctrlSearch.FormatTimeResult(span))); Search.PagesCount = search.TotalCount % 20 == 0 ? search.TotalCount / 20 : search.TotalCount / 20 + 1; Search.PagerHasPrev = search.HasPrevPage; Search.PagerHasNext = search.HasNextPage; return true; }
private bool NavHandler(string args) { Guid noteID = Guid.Parse(args.Split(':')[1]); try { PXEntitySearch search = new PXEntitySearch(); search.Redirect(noteID); } catch (PXRedirectRequiredException ex) { string url = PX.Web.UI.PXDataSource.getMainForm(ex.Graph.GetType()); if (url != null) { ex.Graph.Unload(); PXContext.Session.RedirectGraphType[PXUrl.ToAbsoluteUrl(url)] = ex.Graph.GetType(); throw new PXRedirectRequiredException(url, ex.Graph, "Redirect0:" + this.ResolveUrl/**/ (url)); } } return(false); } private bool NavHandlerFiles(string args) { try { String FileName = args.Split(':')[1]; WikiFileMaintenance graph = PXGraph.CreateInstance <WikiFileMaintenance>(); UploadFileWithIDSelector cur = PXSelect <UploadFileWithIDSelector, Where <UploadFileWithIDSelector.name, Equal <Required <UploadFileWithIDSelector.name> > > > .Select(graph, HttpUtility.UrlDecode(FileName)); if (cur != null) { graph.Files.Current = cur; } PXRedirectHelper.TryRedirect(graph, PXRedirectHelper.WindowMode.Same); } catch (PXRedirectRequiredException ex) { string url = PX.Web.UI.PXDataSource.getMainForm(ex.Graph.GetType()); if (url != null) { ex.Graph.Unload(); PXContext.Session.RedirectGraphType[PXUrl.ToAbsoluteUrl(url)] = ex.Graph.GetType(); throw new PXRedirectRequiredException(url, ex.Graph, "Redirect0:" + this.ResolveUrl/**/ (url)); } } return(false); }
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()); }
protected virtual void Page_LoadComplete(object sender, EventArgs e) { string noteID = Request.Params["navigate"]; if (!string.IsNullOrEmpty(noteID)) { try { PXEntitySearch search = new PXEntitySearch(); search.Redirect(Guid.Parse(noteID)); } catch (PXRedirectRequiredException ex) { string url = PX.Web.UI.PXDataSource.getMainForm(ex.Graph.GetType()); if (url != null) { ex.Graph.Unload(); PXContext.Session.RedirectGraphType[PXUrl.ToAbsoluteUrl(url)] = ex.Graph.GetType(); Response.Redirect(this.ResolveUrl/**/ (url)); //throw new PXRedirectRequiredException(url, ex.Graph, "Redirect0:" + this.ResolveUrl/**/(url)); } } } string fileName = Request.Params["file"]; if (!string.IsNullOrEmpty(fileName)) { try { WikiFileMaintenance graph = PXGraph.CreateInstance <WikiFileMaintenance>(); UploadFileWithIDSelector cur = PXSelect <UploadFileWithIDSelector, Where <UploadFileWithIDSelector.name, Equal <Required <UploadFileWithIDSelector.name> > > > .Select(graph, HttpUtility.UrlDecode(fileName)); if (cur != null) { graph.Files.Current = cur; } PXRedirectHelper.TryRedirect(graph, PXRedirectHelper.WindowMode.Same); } catch (PXRedirectRequiredException ex) { string url = PX.Web.UI.PXDataSource.getMainForm(ex.Graph.GetType()); if (url != null) { ex.Graph.Unload(); PXContext.Session.RedirectGraphType[PXUrl.ToAbsoluteUrl(url)] = ex.Graph.GetType(); Response.Redirect(this.ResolveUrl/**/ (url)); //throw new PXRedirectRequiredException(url, ex.Graph, "Redirect0:" + this.ResolveUrl/**/(url)); } } } //if (Page.IsPostBack && !Page.IsCallback) // AcceptInput(); //int page = 0; //int.TryParse(Request.Params["page"], out page); string query = TrimLongString(txtSearch.Text); switch (searchType) { case SearchService.SearchLookupType.ActiveModule: case SearchService.SearchLookupType.AllEntities: if (PerformSearchEntity(query, pageIndex)) { divMessage.Visible = false; } break; case SearchService.SearchLookupType.ActiveWiki: case SearchService.SearchLookupType.AllHelp: if (PerformSearchArticle(query, pageIndex)) { divMessage.Visible = false; } break; case SearchService.SearchLookupType.Files: if (PerformSearchFile(query, pageIndex)) { divMessage.Visible = false; } break; } }