/// <summary>
        /// 
        /// Description: 保存代码xml
        /// Author:Liudpc
        /// Create Date: 2010-6-30 11:11:40
        /// </summary>
        /// <param name="code"></param>
        /// <param name="sSavePath"></param>
        /// <returns></returns>
        public BaseEntity.ResultReturnEntityCBE SaveTempleteCode(TempleteCodeEntityCRF code, string sSavePath)
        {
            BaseEntity.ResultReturnEntityCBE rre = new SrnprCommon.BaseEntity.ResultReturnEntityCBE();
            rre.ResultFlag = true;

            if (rre.ResultFlag)
            {
                if (string.IsNullOrEmpty(code.Config.XmlGuid))
                {
                    code.Config.XmlGuid = Guid.NewGuid().ToString();
                }

                if (string.IsNullOrEmpty(code.Config.UpdateDate))
                {
                    code.Config.UpdateDate = DateTime.Now.ToString();
                }
                if (string.IsNullOrEmpty(code.Config.CreateDate))
                {
                    code.Config.CreateDate = code.Config.UpdateDate;
                }
            }

            if (rre.ResultFlag)
            {
                XmlDocument xd = new XmlDocument();

                XmlNode xnReplaceFileRoot = xd.CreateElement("ReplaceFileRoot");
                xd.AppendChild(xnReplaceFileRoot);
                //XmlNode xnReplaceFile = xd.CreateElement("ReplaceFile");
                //XmlNode xnReplaceFileCode = xd.CreateElement("ReplaceFileCode");

                XmlNode xnReplaceFileCode = XmlStaticCCF.AppendChildNode(XmlStaticCCF.AppendChildNode(xnReplaceFileRoot, "ReplaceFile"), "ReplaceFileCode");

                #region 开始保存配置文件
                if (rre.ResultFlag)
                {
                    XmlNode xnConfigItem = XmlStaticCCF.AppendChildNode(xnReplaceFileCode, "ConfigItem");
                    XmlAppendNode(xd, "Used", code.Config.Used ? "true" : "false", xnConfigItem);
                    XmlAppendNode(xd, "Title", code.Config.Title, xnConfigItem);
                    XmlAppendNode(xd, "Description", code.Config.Description, xnConfigItem);
                    XmlAppendNode(xd, "DataServerId", code.Config.DataServerId, xnConfigItem);
                    XmlAppendNode(xd, "EmailServerId", code.Config.EmailServerId, xnConfigItem);
                    XmlAppendNode(xd, "StateSql", code.Config.StateSql, xnConfigItem);
                    XmlAppendNode(xd, "Version", code.Config.Version, xnConfigItem);

                    XmlStaticCCF.AppendAtt(xnConfigItem, "XmlGuid", code.Config.XmlGuid);
                    XmlStaticCCF.AppendAtt(xnConfigItem, "XmlFileId", code.Config.XmlFileId);
                    XmlStaticCCF.AppendAtt(xnConfigItem, "CreateDate", code.Config.CreateDate);
                    XmlStaticCCF.AppendAtt(xnConfigItem, "UpdateDate", code.Config.UpdateDate);

                }
                #endregion

                #region 开始保存输入参数
                if (rre.ResultFlag)
                {
                    XmlNode xnParmItem = XmlStaticCCF.AppendChildNode(xnReplaceFileCode,"ParmItem");

                    foreach (var v in code.Parm)
                    {
                        XmlNode xnParm = XmlStaticCCF.AppendChildNode(xnParmItem,"Parm")  ;

                        XmlStaticCCF.AppendAtt(xnParm, "parmText", v.ParmText);
                        XmlStaticCCF.AppendAtt(xnParm, "parmName", v.ParmName);
                        XmlStaticCCF.AppendAtt(xnParm, "guid", v.Guid);

                    }

                }
                #endregion

                #region 开始保存主Sql
                if (rre.ResultFlag)
                {
                    XmlNode xnMainItem = XmlStaticCCF.AppendChildNode(xnReplaceFileCode, "MainItem");

                    foreach (var v in code.MainSql)
                    {
                        XmlNode xnMainSql = XmlStaticCCF.AppendChildNode(xnMainItem, "MainSql", v.SqlString);
                        XmlStaticCCF.AppendAtt(xnMainSql, "guid", v.Guid);

                    }

                }
                #endregion

                #region 开始保存循环Sql
                if (rre.ResultFlag)
                {
                    XmlNode xnListItem = xd.CreateElement("ListItem");

                    foreach (var v in code.ListSql)
                    {
                        XmlNode xnListSql = XmlStaticCCF.AppendChildNode(xnListItem, "ListSql", v.SqlString);
                        XmlStaticCCF.AppendAtt(xnListSql, "guid", v.Guid);
                    }

                    xnReplaceFileCode.AppendChild(xnListItem);
                }
                #endregion

                xd.Save(sSavePath);
            }

            return rre;
        }
 /// <summary>
 /// 
 /// Description: 保存代码文档
 /// Author:Liudpc
 /// Create Date: 2010-6-30 11:37:42
 /// </summary>
 /// <param name="code"></param>
 /// <param name="sXmlId"></param>
 /// <returns></returns>
 public SrnprCommon.BaseEntity.ResultReturnEntityCBE SaveTempleteCode(TempleteCodeEntityCRF code, string sXmlId)
 {
     return replace.SaveTempleteCode(code, GetXmlPathCodeByXmlId(sXmlId));
 }
        /// <summary>
        /// 
        /// Description: 得到编码实体
        /// Author:Liudpc
        /// Create Date: 2010-6-9 17:01:41
        /// </summary>
        /// <param name="sFilePath"></param>
        /// <returns></returns>
        public TempleteCodeEntityCRF GetTempleteCode(string sFilePath)
        {
            TempleteCodeEntityCRF tce = new TempleteCodeEntityCRF();

            //判断文件是否存在
            if (File.Exists(sFilePath))
            {
                XmlDocument xd = new XmlDocument();
                xd.Load(sFilePath);
                XmlNode xnCode= xd.SelectSingleNode("ReplaceFileRoot/ReplaceFile/ReplaceFileCode");

                #region 取出配置列表

                XmlNode xnConfig = xnCode.SelectSingleNode("ConfigItem");
                if (xnConfig != null)
                {
                    tce.Config = new ItemConfigEntityCRF();
                    tce.Config.Title = xnConfig.SelectSingleNode("Title").InnerText.Trim();
                    tce.Config.Description = xnConfig.SelectSingleNode("Description").InnerText.Trim();
                    tce.Config.DataServerId = xnConfig.SelectSingleNode("DataServerId").InnerText.Trim();
                    tce.Config.EmailServerId = xnConfig.SelectSingleNode("EmailServerId").InnerText.Trim();

                    tce.Config.StateSql =XmlGetChildValueByName(xnConfig,"StateSql");

                    tce.Config.Version =XmlGetChildValueByName(xnConfig,"Version");

                    //判断是否可用
                    string sUsed = xnConfig.SelectSingleNode("Used").InnerText.Trim().ToLower();
                    if (sUsed == "true" || sUsed == "1")
                    {
                        tce.Config.Used = true;
                    }
                    else
                    {
                        tce.Config.Used = false;
                    }
                }

                #endregion

                #region 取出输入参数

                XmlNodeList xnlParms = xnCode.SelectNodes("ParmItem/Parm");
                if (xnlParms != null)
                {
                    tce.Parm = new List<ItemPramEntityCRF>();
                    foreach (XmlNode xn in xnlParms)
                    {
                        tce.Parm.Add(new ItemPramEntityCRF() { ParmName = XmlGetAttValueByName(xn,"parmName"), ParmText =XmlGetAttValueByName(xn,"parmText"),Guid=XmlGetAttValueByName(xn,"guid")  });
                    }
                }

                #endregion

                #region 取出主sql

                XmlNodeList xnlMainSql = xnCode.SelectNodes("MainItem/MainSql");
                if (xnlMainSql != null)
                {
                    tce.MainSql = new List<ItemMainSqlEntityCRF>();
                    foreach (XmlNode xn in xnlMainSql)
                    {
                        tce.MainSql.Add(new ItemMainSqlEntityCRF() { SqlString = xn.InnerText.Trim(), Guid = XmlGetAttValueByName(xn, "guid") });
                    }
                }

                #endregion

                #region 取出循环sql

                XmlNodeList xnlListItem = xnCode.SelectNodes("ListItem/ListSql");
                if (xnlListItem != null)
                {
                    tce.ListSql = new List<ItemListSqlEntityCRF>();
                    foreach (XmlNode xn in xnlListItem)
                    {
                        tce.ListSql.Add(new ItemListSqlEntityCRF() { SqlString = xn.InnerText.Trim(), Guid = XmlGetAttValueByName(xn, "guid") });
                    }
                }

                #endregion

            }
            else
            {
                AddLog(20010015,sFilePath);
            }

            return tce;
        }