//----------------------------------------------------------------- #region -----------------PopulateXmlNodeFromPage----------------- //----------------------------------------------------------------- //PopulateXmlNodeFromPage //----------------------------------------------------------------- private XmlElement PopulateXmlNodeFromPage(SitePageOptions page, XmlElement node) { SitePageOptions defaultPage = new SitePageOptions(); /****************************************************/ Type myType = typeof(SitePageOptions); PropertyInfo[] piT = myType.GetProperties(); object propValue; object defaultValue; foreach (PropertyInfo myPropInfo in piT) { if (myPropInfo.CanWrite) { propValue = myPropInfo.GetValue(page, null); defaultValue = myPropInfo.GetValue(defaultPage, null); if (propValue.ToString() != defaultValue.ToString()) { AddAttribute(node, myPropInfo.Name, propValue); } } } return(node); }
//----------------------------------------------------------------- public bool SavePage(SitePageOptions page) { XmlNodeList nodeList = XmlDoc.SelectNodes("/Pages/Page[@PageID='" + page.PageID + "']"); if (nodeList.Count == 0) { return(AddPage(page)); } else { return(UpdatePage(page)); } }
//------------------------------------------------------------------ public bool UpdatePage(SitePageOptions page) { bool res = false; XmlNodeList nodesList = XmlDoc.SelectNodes("/Pages/Page[@PageID='" + page.PageID + "']"); if (nodesList.Count == 1) { XmlElement oldPageNode = (XmlElement)nodesList[0]; oldPageNode.Attributes.RemoveAll(); PopulateXmlNodeFromPage(page, oldPageNode); //XmlDoc.Save(DCServer.MapPath("~") + SiteDesign.ModulesOptionsConfigs+"SitePages.config"); SiteConfigurationManager.UpdateSitePages(XmlDoc); res = true; } return(res); }
public bool AddPage(SitePageOptions page) { bool res = false; XmlNodeList nodeList = XmlDoc.SelectNodes("/Pages/Page[@PageID='" + page.PageID + "']"); if (nodeList.Count == 0) { //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx XmlElement xmlNewPage = XmlDoc.CreateElement("Page"); xmlNewPage = PopulateXmlNodeFromPage(page, xmlNewPage); XmlNode commonParent = XmlDoc.SelectSingleNode("/Pages"); commonParent.AppendChild(xmlNewPage); //XmlDoc.Save(DCServer.MapPath("~") + SiteDesign.ModulesOptionsConfigs+"SitePages.config"); SiteConfigurationManager.UpdateSitePages(XmlDoc); //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx res = true; } return(res); }
//----------------------------------------------------------------- //----------------------------------------------------------------- #region -----------------PopulatePageFromXmlNode----------------- //----------------------------------------------------------------- private SitePageOptions PopulatePageFromXmlNode(XmlNode node) { SitePageOptions Page = new SitePageOptions(); /****************************************************/ //find all the public properties of list Type using reflection PropertyInfo[] piT = typeof(SitePageOptions).GetProperties(); // Get the Type object corresponding to MyClass. Type myType = typeof(SitePageOptions); PropertyInfo myPropInfo; string exceptions = ""; foreach (XmlAttribute attr in node.Attributes) { try { myPropInfo = myType.GetProperty(attr.Name); if (myPropInfo.CanWrite) { if (myPropInfo.PropertyType.BaseType == typeof(System.Enum)) { //int intVal = Convert.ToInt32(attr.Value); myPropInfo.SetValue(Page, Enum.Parse(myPropInfo.PropertyType, attr.Value), null); //Enum.Parse(typeof(myPropInfo.), "FirstName"); } else { myPropInfo.SetValue(Page, Convert.ChangeType(attr.Value, myPropInfo.PropertyType), null); } } } catch (Exception ex) { throw new Exception(attr.Name); } } return(Page); }
//------------------------------------------------------------------ public bool UpdatePage(SitePageOptions page) { return(sitePages.UpdatePage(page)); }
public bool AddPage(SitePageOptions page) { return(sitePages.AddPage(page)); }
//----------------------------------------------------------------- public bool SavePage(SitePageOptions page) { return(sitePages.SavePage(page)); }