示例#1
0
    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();
                }
            }
        }
    }
示例#2
0
    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);
    }
示例#3
0
    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));
        }
    }