Chronozoom.UI.DefaultHttpHandler.ComposePage C# (CSharp) Method

ComposePage() private method

private ComposePage ( System.Xml.Linq.XDocument pageRoot, XmlNamespaceManager xmlNamespaceManager, PageInformation pageInformation ) : void
pageRoot System.Xml.Linq.XDocument
xmlNamespaceManager System.Xml.XmlNamespaceManager
pageInformation PageInformation
return void
        private static void ComposePage(XDocument pageRoot, XmlNamespaceManager xmlNamespaceManager, PageInformation pageInformation)
        {
            XElement scriptNode = pageRoot.XPathSelectElement("/xhtml:html/xhtml:head/xhtml:script[@id='constants']", xmlNamespaceManager);
            scriptNode.Value = "var constants = { " +
                "analyticsId: \""               + pageInformation.AnalyticsServiceId        + "\", " +
                "airbrakeProjectId: \""         + pageInformation.AirbrakeProjectId         + "\", " +
                "airbrakeProjectKey: \""        + pageInformation.AirbrakeProjectKey        + "\", " +
                "airbrakeEnvironmentName: \""   + pageInformation.AirbrakeEnvironmentName   + "\", " +
                "onedriveClientId: \""          + pageInformation.OneDriveClientID          + "\", " +
                "cssFileVersion: \""            + pageInformation.CSSFileVersion            + "\", " +
                "jsFileVersion: \""             + pageInformation.JSFileVersion             + "\", " +
                "environment: \""               + CurrentEnvironment.ToString()             + "\"  " +
                "};";

            if (!string.IsNullOrEmpty(pageInformation.Title))
            {
                XElement titleNode = pageRoot.XPathSelectElement("/xhtml:html/xhtml:head/xhtml:title", xmlNamespaceManager);
                titleNode.Value = string.Format(CultureInfo.InvariantCulture, "{0} - ChronoZoom", pageInformation.Title);
            }

            if (!string.IsNullOrEmpty(pageInformation.Description))
            {
                XElement metaDescription = pageRoot.XPathSelectElement("/xhtml:html/xhtml:head/xhtml:meta[@name='Description']", xmlNamespaceManager);
                XName contentAttribute = "content";

                metaDescription.SetAttributeValue(contentAttribute, pageInformation.Description);
            }

            XElement lastMetaTag = pageRoot.XPathSelectElement("/xhtml:html/xhtml:head/xhtml:meta[@name='viewport']", xmlNamespaceManager);
            int imageCount = 0;
            foreach (string image in pageInformation.Images)
            {
                if (++imageCount > 3) break;

                XName metaNode = "meta";
                XName linkNode = "link";
                lastMetaTag.AddAfterSelf(
                    new XElement(
                        linkNode,
                        new XAttribute("rel", "image_src"),
                        new XAttribute("href", image)
                    ),
                    new XElement(
                        metaNode,
                        new XAttribute("property", "og:image"),
                        new XAttribute("content", image)
                    )
                );
            }
        }
    }