/// <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; }
/// <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; }