public static SvnChangeInfo Parse(XElement element) { var obj = new SvnChangeInfo() { Action = element.Attribute("action").Value, Path = element.Value, }; { var attr = element.Attribute("copyfrom-path"); if (attr != null) { obj.CopyFromPath = attr.Value; } } { var attr = element.Attribute("copyfrom-rev"); if (attr != null) { obj.CopyFromRevision = attr.Value; } } return(obj); }
private static SvnLogInfo Parse(XElement element) { LogPropertyInfo[] props = null; var commentValue = element.XPathSelectElement("msg").Value; var comment = null as string; var obj = new SvnLogInfo() { Author = element.XPathSelectElement("author").Value, Revision = element.Attribute("revision").Value, Comment = comment ?? commentValue, DateTime = XmlConvert.ToDateTime(element.XPathSelectElement("date").Value, XmlDateTimeSerializationMode.Utc) }; var pathItems = element.XPathSelectElements("paths/path").ToArray(); var changedItemList = new List <SvnChangeInfo>(); foreach (var item in pathItems) { var changedItem = SvnChangeInfo.Parse(item); changedItemList.Add(changedItem); } obj.ChangedPaths = changedItemList.ToArray(); if (props == null) { var propItems = element.XPathSelectElements("revprops/property").ToArray(); var propItemList = new List <SvnPropertyValue>(); foreach (var item in propItems) { var propItem = SvnPropertyValue.Parse(item); propItemList.Add(propItem); if (propItem.Prefix == propertyPrefix && propItem.Key == LogPropertyInfo.UserIDKey) { obj.Author = propItem.Value; } } obj.Properties = propItemList.ToArray(); } else { var propList = new List <SvnPropertyValue>(); foreach (var item in props) { propList.Add((SvnPropertyValue)item); } obj.Properties = propList.ToArray(); } return(obj); }