private static SvnLogEventArgs Parse(XElement element) { var obj = new SvnLogEventArgs() { Author = element.XPathSelectElement("author").Value, Revision = long.Parse(element.Attribute("revision").Value), Comment = element.XPathSelectElement("msg").Value, DateTime = XmlConvert.ToDateTime(element.XPathSelectElement("date").Value, XmlDateTimeSerializationMode.Utc) }; var pathItems = element.XPathSelectElements("paths/path").ToArray(); var changedItemList = new List <SvnChangeItem>(); foreach (var item in pathItems) { var changedItem = SvnChangeItem.Parse(item); changedItemList.Add(changedItem); } obj.ChangedPaths = changedItemList.ToArray(); 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); } obj.Properties = propItemList.ToArray(); return(obj); }
public static SvnPropertyValue Parse(XElement element) { var propName = element.Attribute("name").Value; var match = Regex.Match(propName, @"(?<prefix>[^:]+:)(?<key>.+)", RegexOptions.ExplicitCapture); var prefix = match.Groups["prefix"].Value.Trim(); var name = match.Groups["key"].Value.Trim(); var obj = new SvnPropertyValue() { Value = element.Value, }; if (prefix == string.Empty) { obj.Prefix = string.Empty; obj.Key = propName; } else { obj.Prefix = prefix; obj.Key = name; } return(obj); }