// <Change type="None or Add or Edit or Encoding or Rename or Delete or Undelete or Branch or Merge or Lock or Rollback or SourceRename or Property" typeEx="int"> // <Item xsi:nil="true" /> // <MergeSources xsi:nil="true" /> // </Change> internal static Change FromXml(XElement element) { Change change = new Change(); if (element.Attribute("type") != null && !string.IsNullOrEmpty(element.Attribute("type").Value)) { change.ChangeType = (ChangeType)Enum.Parse(typeof(ChangeType), element.Attribute("type").Value.Replace(" ", ","), true); } change.Item = Item.FromXml(element.Element(element.Name.Namespace + "Item")); return(change); }
//<QueryItemsResult xmlns="http://schemas.microsoft.com/TeamFoundation/2005/06/VersionControl/ClientServices/03"> // <ItemSet> // <QueryPath>$/</QueryPath> // <Items> // <Item cs="1" date="2006-12-15T16:16:26.95Z" enc="-3" type="Folder" itemid="1" item="$/" /> internal static ItemSet FromXml(XElement element) { ItemSet itemSet = new ItemSet(); List <Item> items = new List <Item>(); var patternElement = element.Element(XmlNamespaces.GetMessageElementName("Pattern")); itemSet.pattern = patternElement != null ? patternElement.Value : string.Empty; var queryPathElement = element.Element(XmlNamespaces.GetMessageElementName("QueryPath")); itemSet.queryPath = queryPathElement != null ? queryPathElement.Value : string.Empty; var itemElements = element.Element(XmlNamespaces.GetMessageElementName("Items")).Elements(XmlNamespaces.GetMessageElementName("Item")); items.AddRange(itemElements.Select(it => Item.FromXml(it))); items.Sort(); itemSet.items = items.ToArray(); return(itemSet); }