Esempio n. 1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="siteId"></param>
        /// <param name="sites"></param>
        /// <param name="includeGlobal"></param>
        /// <returns></returns>
        public XmlNode GetSiteOptionListForSiteXml(int siteId, ISiteList sites, bool includeGlobal)
        {
            List<SiteOption> list = sites.GetSiteOptionListForSite(siteId);

            if (RootElement.HasChildNodes)
            {
                RootElement.RemoveAll();
            }

            XmlNode siteOptionsNode = AddElementTag(RootElement, "SITEOPTIONS");

            if (siteId > 0)
            {
                AddAttribute(siteOptionsNode, "SITEID", siteId);
            }
            else
            {
                AddAttribute(siteOptionsNode, "DEFAULTS", 1);
            }

            foreach (SiteOption so in list)
            {
                int global = 0;
                if (so.IsGlobal)
                {
                    global = 1;
                }

                if (includeGlobal || global == 0)
                {
                    XmlNode siteOptionXml = AddElementTag(siteOptionsNode, "SITEOPTION");
                    AddAttribute(siteOptionXml, "GLOBAL", global);
                    if (siteId > 0)
                    {
                        AddTextTag(siteOptionXml, "SITEID", siteId);
                    }
                    else
                    {
                        AddTextTag(siteOptionXml, "DEFINITION", 1);
                    }
                    AddTextTag(siteOptionXml, "SECTION", so.Section);
                    AddTextTag(siteOptionXml, "NAME", so.Name);
                    AddTextTag(siteOptionXml, "VALUE", so.GetRawValue());
                    AddTextTag(siteOptionXml, "TYPE", ((int)so.OptionType).ToString());
                    AddTextTag(siteOptionXml, "DESCRIPTION", so.Description);
                }
            }

            return siteOptionsNode;
        }
Esempio n. 2
0
        /// <summary>
        /// Generate a list of site options for all sites.
        /// Does not include Global Site Options for each site to avoid duplication of XML.
        /// </summary>
        /// <param name="sites"></param>
        /// <returns></returns>
        public XmlNode GetSiteOptionListXml(ISiteList sites)
        {
            if (RootElement.HasChildNodes)
            {
                RootElement.RemoveAll();
            }

            XmlNode siteOptionsListXml = AddElementTag(RootElement, "SITEOPTIONSLIST");

            foreach ( KeyValuePair<int, BBC.Dna.Sites.Site> site in sites.Ids)
            {
                XmlNode siteOptionsXml = AddElementTag(siteOptionsListXml, "SITEOPTIONS");
                AddAttribute(siteOptionsXml, "SITEID", site.Key);
                
                List<SiteOption> list = sites.GetSiteOptionListForSite(site.Key);
                foreach (SiteOption so in list)
                {
                    if (!so.IsGlobal)
                    {
                        XmlNode siteOptionXml = AddElementTag(siteOptionsXml, "SITEOPTION");
                        AddAttribute(siteOptionXml, "GLOBAL", Convert.ToInt32(so.IsGlobal));
                        AddTextTag(siteOptionXml, "SECTION", so.Section);
                        AddTextTag(siteOptionXml, "NAME", so.Name);
                        AddTextTag(siteOptionXml, "VALUE", so.GetRawValue());
                        AddTextTag(siteOptionXml, "TYPE", ((int)so.OptionType).ToString());
                        AddTextTag(siteOptionXml, "DESCRIPTION", so.Description);
                    }
                }
            }
            return siteOptionsListXml;
        }