/// <summary> /// /// Description: 保存设计到xml文件 /// Author:Liudpc /// Create Date: 2010-6-12 17:17:49 /// </summary> /// <param name="desigon"></param> /// <param name="sSavePath"></param> /// <returns></returns> public bool SaveTempleteDesign(TempleteDesignEntityCRF desigon,string sSavePath) { XmlDocument xd = new XmlDocument(); XmlNode xnReplaceFileRoot = xd.CreateElement("ReplaceFileRoot"); XmlNode xnReplaceFile = xd.CreateElement("ReplaceFile"); XmlNode xnReplaceFileDesign = xd.CreateElement("ReplaceFileDesign"); XmlNode xnRuleItem = xd.CreateElement("RuleItem"); XmlNode xnRule = xd.CreateElement("Rule"); XmlNode xnRuleExpression = xd.CreateElement("RuleExpression"); foreach (ItemRuleEntityAtCRF ruleEntity in desigon.ItemRule) { switch (ruleEntity.RuleType) { case ItemRuleType.RuleExpression: ItemRuleExpressionEntityCRF iree=ruleEntity as ItemRuleExpressionEntityCRF; XmlNode xnExpressionInfo = xd.CreateElement("ExpressionInfo"); XmlAppendNode(xd, "TempleteGuid", iree.TempleteGuid, xnExpressionInfo); XmlAppendNode(xd, "Expression", iree.Expression, xnExpressionInfo); XmlAppendNode(xd, "ExpressionParm", iree.ExpressionParm, xnExpressionInfo); xnRuleExpression.AppendChild(xnExpressionInfo); break; } } xnRule.AppendChild(xnRuleExpression); xnRuleItem.AppendChild(xnRule); xnReplaceFileDesign.AppendChild(xnRuleItem); XmlNode xnTempleteItem = xd.CreateElement("TempleteItem"); foreach (ItemTempleteEntityIfCRF tempEntity in desigon.ItemTemplete) { switch (tempEntity.TempleteType) { case ItemTempleteType.EmailInfo: ItemTempleteEmailInfoEntityCRF itee = tempEntity as ItemTempleteEmailInfoEntityCRF; XmlNode xnTemplete = xd.CreateElement("Templete"); XmlAttribute xa = xd.CreateAttribute("guid"); xa.Value = itee.Guid; xnTemplete.Attributes.Append(xa); XmlNode xnEmailInfo = xd.CreateElement("EmailInfo"); XmlAppendNode(xd, "Title", itee.Title, xnEmailInfo); XmlAppendNode(xd, "Content", itee.Content, xnEmailInfo); xnTemplete.AppendChild(xnEmailInfo); xnTempleteItem.AppendChild(xnTemplete); break; } } xnReplaceFileDesign.AppendChild(xnTempleteItem); xnReplaceFile.AppendChild(xnReplaceFileDesign); xnReplaceFileRoot.AppendChild(xnReplaceFile); xd.AppendChild(xnReplaceFileRoot); xd.Save(sSavePath); return true; }
/// <summary> /// /// Description: 得到设计实体 /// Author:Liudpc /// Create Date: 2010-6-9 17:01:54 /// </summary> /// <param name="sFilePath"></param> /// <returns></returns> public TempleteDesignEntityCRF GetTempleteDesign(string sFilePath) { TempleteDesignEntityCRF returnDesignEntity = new TempleteDesignEntityCRF(); if (File.Exists(sFilePath)) { XmlDocument xd = new XmlDocument(); xd.Load(sFilePath); XmlNode xnDesign = xd.SelectSingleNode("ReplaceFileRoot/ReplaceFile/ReplaceFileDesign"); returnDesignEntity.ItemRule = new List<ItemRuleEntityAtCRF>(); XmlNode xnRule = xnDesign.SelectSingleNode("RuleItem/Rule"); if (xnRule != null) { foreach (XmlNode xnRuleInfo in xnRule.ChildNodes) { if (xnRuleInfo.Name == "RuleExpression") { foreach (XmlNode xn in xnRuleInfo.SelectNodes("ExpressionInfo")) { ItemRuleExpressionEntityCRF iree = new ItemRuleExpressionEntityCRF(); iree.Expression = xn.SelectSingleNode("Expression").InnerText.Trim(); iree.TempleteGuid = xn.SelectSingleNode("TempleteGuid").InnerText.Trim(); iree.ExpressionParm = xn.SelectSingleNode("ExpressionParm").InnerText.Trim(); returnDesignEntity.ItemRule.Add(iree); } } } } returnDesignEntity.ItemTemplete = new List<ItemTempleteEntityIfCRF>(); XmlNode xnTempleteItem = xnDesign.SelectSingleNode("TempleteItem"); if (xnTempleteItem != null) { foreach (XmlNode xnTemplete in xnTempleteItem) { foreach (XmlNode xnTempleteInfo in xnTemplete.ChildNodes) { if (xnTempleteInfo.Name == "EmailInfo") { ItemTempleteEmailInfoEntityCRF itee = new ItemTempleteEmailInfoEntityCRF(); itee.Guid = XmlStaticCCF.GetAttValueByName(xnTemplete, "guid"); itee.Title = XmlStaticCCF.GetChildValueByName(xnTempleteInfo,"Title"); itee.Content = XmlStaticCCF.GetChildValueByName(xnTempleteInfo, "Content"); returnDesignEntity.ItemTemplete.Add(itee); } } } } } else { AddLog(20010015, sFilePath); } return returnDesignEntity; }