protected void imgSearchIcon_Click(object sender, ImageClickEventArgs e) { string helpCultureName = _cultureCookie != null ? _cultureCookie.Value : string.Empty; string rootUrl = HelpSiteMapProvider.GetProviderRootUrlByCultureName(helpCultureName); string contentIndexName = "HelpContentIndex:" + rootUrl; ContentIndex myContentIndex = null; ContentSearchResult mySearchResult = null; XmlDocument doc = new XmlDocument(); XslCompiledTransform xslt = new XslCompiledTransform(); XsltArgumentList xsltArgs = new XsltArgumentList(); StringWriter xsltResult = null; string exprPageTitle = @"(?si)(?:(?<=<meta\s*name\s*=\s*(?:""|')menuText(?:""|')\s*content\s*=\s*(?:""|'))(?<contentAttribute>.*?[^(?:"")]*)(?=(?:"")[^>]*>)|(?<=<meta\s*content\s*=\s*(?:""|'))(?<contentAttribute>.*?[^(?:"")]*)(?=(?:"")\s*name\s*=\s*(?:""|')menuText(?:""|')\s*[^>]*>))"; if (txtSearch.Text.Length > 0) { try { myContentIndex = Application[contentIndexName] as ContentIndex; if (myContentIndex == null) { myContentIndex = new ContentIndex(Page.MapPath(rootUrl), exprPageTitle); Application[contentIndexName] = myContentIndex; } mySearchResult = myContentIndex.Search(txtSearch.Text); doc.LoadXml(mySearchResult.ToXml()); xslt.Load(Server.MapPath("css/searchResult.xsl")); xsltArgs.AddParam("hrefPrefix", string.Empty, Request.Url.GetLeftPart(System.UriPartial.Path) + "?page=Help&content="); xsltArgs.AddParam("relativeURL", string.Empty, rootUrl); xsltArgs.AddParam("mappedURL", string.Empty, Page.MapPath(rootUrl)); xsltResult = new StringWriter(); xslt.Transform(doc, xsltArgs, xsltResult); litMainContent.Text = xsltResult.ToString(); } catch (XmlException xmlEx) { if (xmlEx.Message.ToLowerInvariant().Contains("root")) { //Missing root element. litMainContent.Text = String.Format(GetLocalResourceObject("NoContentFound").ToString(), txtSearch.Text); } else { litMainContent.Text = String.Format(GetLocalResourceObject("UnableToSearch").ToString(), xmlEx.Message); } } catch (Exception ex) { litMainContent.Text = String.Format(GetLocalResourceObject("UnableToSearch").ToString(), ex.Message); } finally { if (xsltResult != null) { xsltResult.Close(); } } } }
private void SetHelpCulture() { _cultureCookie = Request.Cookies[HelpConstant.HelpCultureCookieName]; string preferredHelpCultureName = _cultureCookie != null ? _cultureCookie.Value : string.Empty; if (string.IsNullOrEmpty(preferredHelpCultureName)) { preferredHelpCultureName = System.Threading.Thread.CurrentThread.CurrentCulture.Name; _cultureCookie = new HttpCookie(HelpConstant.HelpCultureCookieName, preferredHelpCultureName); Request.Cookies.Add(_cultureCookie); Response.Cookies.Add(_cultureCookie); } helpSiteMapDataSource.SiteMapProvider = HelpSiteMapProvider.GetHelpProviderNameByCultureName(preferredHelpCultureName); }
protected void ddlSupportedCultures_SelectedIndexChanged(object sender, EventArgs e) { //HttpCookie cultureCookie = Request.Cookies[HelpConstant.HelpCultureCookieName]; string saveHelpCultureName = _cultureCookie != null ? _cultureCookie.Value : string.Empty; string newHelpCultureName = ddlSupportedCultures.SelectedValue; if (_cultureCookie != null) { _cultureCookie.Value = newHelpCultureName; Request.Cookies[HelpConstant.HelpCultureCookieName].Value = newHelpCultureName; } if (saveHelpCultureName.CompareTo(newHelpCultureName) != 0) { string url = Server.UrlDecode(Request.Url.PathAndQuery); //Request.Url.ToString(); string saveRootUrl = HelpSiteMapProvider.GetProviderRootUrlByCultureName(saveHelpCultureName); string newRootUrl = HelpSiteMapProvider.GetProviderRootUrlByCultureName(newHelpCultureName); //Response.Redirect(url.Replace(saveRootUrl, newRootUrl)); //Using the transfer method maintains the newly chosen culture name. Server.Transfer(url.Replace(saveRootUrl, newRootUrl)); } }