Exemplo n.º 1
0
        /// <summary>
        /// 初始化配置
        /// </summary>
        public void Init()
        {
            var configpath = IO.PathMg.CheckPath(DBConfigPath); //组合路径
            var xmlwr      = new IO.XmlHelper(configpath);      //XML读取器

            InitConnectionSetting(xmlwr);                       //初始化连接

            InitModelSetting(xmlwr);                            //初始化对象配置
        }
Exemplo n.º 2
0
 /// <summary>
 /// 生成节点
 /// </summary>
 /// <param name="name">节点名</param>
 /// <param name="value">节点值</param>
 /// <param name="xmlwr">写对象</param>
 /// <param name="parent">父节点</param>
 protected static XmlNode CreateNode(string name, string value, IO.XmlHelper xmlwr, XmlNode parent)
 {
     if (!string.IsNullOrWhiteSpace(value) && parent != null)
     {
         var rsstitle = xmlwr.CreateNewNode(parent, XmlNodeType.Element, name);
         rsstitle.InnerText = value;
         return(rsstitle);
     }
     return(null);
 }
Exemplo n.º 3
0
        /// <summary>
        /// 获取二个SVN库或者标签之间的差异
        /// </summary>
        /// <param name="url1"></param>
        /// <param name="url2"></param>
        /// <returns></returns>
        public List <DiffFile> GetDiff(string url1, string url2, string username = "", string password = "", string path = "", Func <string, string> fun = null)
        {
            var command = string.Format(SVNDiffCommand, _svnFileName, CreateLoginInfo(username, password), url1, url2);

            //执行查异化命令
            var result = RunSvnCommand(path, command, fun);

            var index = result.IndexOf("<?xml");
            var end   = result.IndexOf("</diff>") - index + 7;
            var diffs = new List <DiffFile>();//差异集合

            if (index >= 0 && end > 0)
            {
                var xmldoc = result.Substring(index, end);//截取XML

                var xmlwr = new IO.XmlHelper();
                xmlwr.LoadXmlString(xmldoc);

                //获取需要的path节点信息
                var nodes = xmlwr.GetNodeListByDelegate(delegate(System.Xml.XmlNode xn)
                {
                    return(xn.Name.Equals("path", StringComparison.CurrentCultureIgnoreCase) &&
                           xn.ParentNode != null && xn.ParentNode.Name.Equals("paths", StringComparison.CurrentCultureIgnoreCase));
                });

                if (nodes != null)
                {
                    foreach (System.Xml.XmlNode cn in nodes)
                    {
                        var df   = new DiffFile();
                        var item = IO.XmlHelper.ReadAttributeValue(cn, "item");//获取类型
                        if (!string.IsNullOrWhiteSpace(item))
                        {
                            switch (item.ToLower().Trim())
                            {
                            case "added": { df.DiffType = DiffFile.EnumDiff.Add; break; }

                            case "modified": { df.DiffType = DiffFile.EnumDiff.Update; break; }

                            case "deleted": { df.DiffType = DiffFile.EnumDiff.Delete; break; }
                            }
                        }
                        var kind = IO.XmlHelper.ReadAttributeValue(cn, "kind");//获取文件类型file or dir
                        df.FileType = (DiffFile.EnumFileType)Enum.Parse(typeof(DiffFile.EnumFileType), kind, true);
                        df.Url      = cn.InnerText;

                        diffs.Add(df);
                    }
                }
            }

            return(diffs);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 把RSS项转为xml节点
        /// </summary>
        /// <param name="item">RSS项信息</param>
        /// <returns></returns>
        protected XmlNode CreateRssItem(RssItem item, IO.XmlHelper xmlwr, XmlNode parent)
        {
            var xn = xmlwr.CreateNewNode(parent, XmlNodeType.Element, "item");

            CreateNode("title", item.Title, xmlwr, xn);
            CreateNode("link", item.Link, xmlwr, xn);
            CreateNode("description", item.Description, xmlwr, xn);
            CreateNode("pubDate", item.PubDate.ToString("yyyy/MM/dd HH:mm:ss"), xmlwr, xn);
            CreateNode("category", item.Cagtegory, xmlwr, xn);
            CreateNode("author", item.Author, xmlwr, xn);
            CreateNode("guid", item.Guid, xmlwr, xn);
            return(xn);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 获取节点的值
        /// </summary>
        /// <param name="name"></param>
        /// <param name="parentName"></param>
        /// <param name="xmlwr"></param>
        /// <returns></returns>
        protected string GetNodeValue(string name, string parentName, IO.XmlHelper xmlwr)
        {
            var node = xmlwr.GetNodeByDelegate((XmlNode xn) =>
            {
                return(xn.Name.Equals(name, StringComparison.OrdinalIgnoreCase) &&
                       (string.IsNullOrWhiteSpace(parentName) ||
                        (xn.ParentNode != null && xn.ParentNode.Name.Equals(parentName, StringComparison.OrdinalIgnoreCase))));
            });

            if (node != null)
            {
                return(node.InnerText);
            }
            return("");
        }
Exemplo n.º 6
0
        /// <summary>
        /// 初始化对象配置
        /// </summary>
        /// <param name="xmlwr"></param>
        private void InitModelSetting(IO.XmlHelper xmlwr)
        {
            var modelnodes = xmlwr.GetNodeListByDelegate(delegate(XmlNode xn)
            {
                return(xn.Name.Equals(ModelSettingNodeName, StringComparison.CurrentCultureIgnoreCase) &&
                       xn.ParentNode != null && xn.ParentNode.Name.Equals(ModelSettingParentNodeName, StringComparison.CurrentCultureIgnoreCase));
            });

            if (modelnodes != null)
            {
                ModelSettings = new List <ModelSetting>();
                foreach (var xn in modelnodes)
                {
                    var model = new ModelSetting();
                    model.Contract = IO.XmlHelper.ReadAttributeValue(xn, "contract");           //读取类型

                    model.TableName  = IO.XmlHelper.ReadAttributeValue(xn, "TableName/value");  //表名
                    model.PrimaryKey = IO.XmlHelper.ReadAttributeValue(xn, "PrimaryKey/value"); //表的主健
                    //model.Fields = IO.XmlWR.ReadAttributeValue(xn, "Model/Fields/value");//字段
                    model.Mapping = IO.XmlHelper.ReadAttributeValue(xn, "Mapping/value");       //获取映射

                    foreach (XmlNode cn in xn.ChildNodes)
                    {
                        if (cn.Name.Equals(SelectNodeName, StringComparison.OrdinalIgnoreCase))//查询字段
                        {
                            model.Selects = GetCommandFromNode(cn);
                        }
                        else if (cn.Name.Equals(InsertNodeName, StringComparison.OrdinalIgnoreCase))//新增需要插入的字段
                        {
                            model.InsertCommands = GetCommandFromNode(cn);
                        }
                        else if (cn.Name.Equals(UpdateNodeName, StringComparison.OrdinalIgnoreCase))//修改需要插入的字段
                        {
                            model.UpdateCommands = GetCommandFromNode(cn);
                        }
                    }

                    ModelSettings.Add(model);
                }
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// 初始化连接字符串
        /// </summary>
        /// <param name="xmlwr"></param>
        private void InitConnectionSetting(IO.XmlHelper xmlwr)
        {
            var connodes = xmlwr.GetNodeListByDelegate(delegate(XmlNode xn)
            {
                return(xn.Name.Equals(ConSettingNodeName, StringComparison.CurrentCultureIgnoreCase) &&
                       xn.ParentNode != null && xn.ParentNode.Name.Equals(ConSettingParentNodeName, StringComparison.CurrentCultureIgnoreCase));
            });

            if (connodes != null)
            {
                ConSettings = new List <ConnSetting>();
                foreach (var xn in connodes)
                {
                    var con = new ConnSetting()
                    {
                        ConnectionString = IO.XmlHelper.ReadAttributeValue(xn, "connectionString"), //读取连接字符串
                        Name             = IO.XmlHelper.ReadAttributeValue(xn, "name"),             //读取配置名
                        ProviderName     = IO.XmlHelper.ReadAttributeValue(xn, "providerName")      //读取驱动
                    };
                    ConSettings.Add(con);
                }
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// 初始化配置
        /// </summary>
        public void Init()
        {
            var configpath = IO.PathMg.CheckPath(DBConfigPath);//组合路径
            var xmlwr = new IO.XmlHelper(configpath);//XML读取器

            InitConnectionSetting(xmlwr);//初始化连接

            InitModelSetting(xmlwr);//初始化对象配置
        }
Exemplo n.º 9
0
        /// <summary>
        /// 通过RSS内容获取整个信息
        /// </summary>
        /// <param name="rssContent">内容</param>
        /// <returns></returns>
        protected void FromRss(string rssContent)
        {
            var xmlwr = new IO.XmlHelper();//读取器

            xmlwr.LoadXmlString(rssContent);

            this.Title       = GetNodeValue("title", "channel", xmlwr);
            this.Description = GetNodeValue("description", "channel", xmlwr);
            this.Docs        = GetNodeValue("docs", "channel", xmlwr);
            this.Generator   = GetNodeValue("generator", "channel", xmlwr);
            this.Language    = GetNodeValue("language", "channel", xmlwr);

            this.Link           = GetNodeValue("link", "channel", xmlwr);
            this.ManagingEditor = GetNodeValue("managingeditor", "channel", xmlwr);
            this.WebMaster      = GetNodeValue("WebMaster", "channel", xmlwr);

            //获取子项
            var nodes = xmlwr.GetNodeListByDelegate(delegate(XmlNode xn)
            {
                return(xn.Name.Equals("item", StringComparison.CurrentCultureIgnoreCase));
            });

            Items.Clear();
            foreach (var xn in nodes)
            {
                if (xn.ChildNodes != null)
                {
                    var item = new RssItem();
                    foreach (XmlNode chn in xn.ChildNodes)
                    {
                        switch (chn.Name.ToLower())
                        {
                        case "title":
                        {
                            item.Title = chn.InnerText;
                            break;
                        }

                        case "link":
                        {
                            item.Link = chn.InnerText;
                            break;
                        }

                        case "description":
                        {
                            item.Description = chn.InnerText;
                            break;
                        }

                        case "author":
                        {
                            item.Author = chn.InnerText;
                            break;
                        }

                        case "comments":
                        {
                            item.Comments = chn.InnerText;
                            break;
                        }

                        case "pubdate":
                        {
                            DateTime dt;
                            if (DateTime.TryParse(chn.InnerText, out dt))
                            {
                                item.PubDate = dt;
                            }
                            break;
                        }

                        case "category":
                        {
                            item.Cagtegory = chn.InnerText;
                            break;
                        }

                        case "guid":
                        {
                            item.Guid = chn.InnerText;
                            break;
                        }
                        }
                    }

                    Items.Add(item);
                }
            }
        }