public ExtendedItem[][] QueryItemsExtended(string workspaceName, string workspaceOwner, ItemSpec[] itemSpecs, DeletedState deletedState, ItemType itemType) { Message msg = new Message(GetWebRequest(new Uri(Url)), "QueryItemsExtended"); if (!String.IsNullOrEmpty(workspaceName)) { msg.Body.WriteElementString("workspaceName", workspaceName); } if (!String.IsNullOrEmpty(workspaceOwner)) { msg.Body.WriteElementString("workspaceOwner", workspaceOwner); } msg.Body.WriteStartElement("items"); foreach (ItemSpec itemSpec in itemSpecs) { itemSpec.ToXml(msg.Body, "ItemSpec"); } msg.Body.WriteEndElement(); msg.Body.WriteElementString("deletedState", deletedState.ToString()); msg.Body.WriteElementString("itemType", itemType.ToString()); List <ExtendedItem[]> listOfItemArrays = new List <ExtendedItem[]>(); using (HttpWebResponse response = Invoke(msg)) { XmlReader results = msg.ResponseReader(response); while (results.Read()) { if (results.NodeType == XmlNodeType.Element && results.Name == "ArrayOfExtendedItem") { List <ExtendedItem> items = new List <ExtendedItem>(); while (results.Read()) { //Console.WriteLine(" " + results.Name + ":" + results.NodeType); if (results.NodeType == XmlNodeType.EndElement && results.Name == "ArrayOfExtendedItem") { break; } if (results.NodeType == XmlNodeType.Element && results.Name == "ExtendedItem") { items.Add(ExtendedItem.FromXml(this, results)); } } listOfItemArrays.Add(items.ToArray()); } } } return(listOfItemArrays.ToArray()); }
//<ExtendedItem lver="int" did="int" latest="int" //type="Any or Folder or File" enc="int" itemid="int" //local="string" titem="string" sitem="string" //chg="None or Add or Edit or Encoding or Rename or Delete or Undelete or Branch or Merge or Lock" //ochg="boolean" lock="None or Checkin or CheckOut or Unchanged" //lowner="string" /> internal static ExtendedItem FromXml(Repository repository, XmlReader reader) { ExtendedItem item = new ExtendedItem(); string chg = reader.GetAttribute("chg"); if (!String.IsNullOrEmpty(chg)) { item.changeType = (ChangeType)Enum.Parse(typeof(ChangeType), chg, true); } string ochg = reader.GetAttribute("ochg"); if (!String.IsNullOrEmpty(ochg)) { item.hasOtherPendingChange = bool.Parse(ochg); } string xlock = reader.GetAttribute("lock"); if (!String.IsNullOrEmpty(xlock)) { item.lockStatus = (LockLevel)Enum.Parse(typeof(LockLevel), xlock, true); } item.lockOwner = reader.GetAttribute("lowner"); item.localItem = TfsPath.ToPlatformPath(reader.GetAttribute("local")); item.targetServerItem = reader.GetAttribute("titem"); item.sourceServerItem = reader.GetAttribute("sitem"); item.itemType = (ItemType)Enum.Parse(typeof(ItemType), reader.GetAttribute("type"), true); item.itemId = Convert.ToInt32(reader.GetAttribute("itemid")); item.encoding = Convert.ToInt32(reader.GetAttribute("enc")); item.versionLocal = Convert.ToInt32(reader.GetAttribute("lver")); item.versionLatest = Convert.ToInt32(reader.GetAttribute("latest")); item.deletionId = Convert.ToInt32(reader.GetAttribute("did")); return(item); }
//<ExtendedItem lver="int" did="int" latest="int" //type="Any or Folder or File" enc="int" itemid="int" //local="string" titem="string" sitem="string" //chg="None or Add or Edit or Encoding or Rename or Delete or Undelete or Branch or Merge or Lock" //ochg="boolean" lock="None or Checkin or CheckOut or Unchanged" //lowner="string" /> internal static ExtendedItem FromXml(Repository repository, XmlReader reader) { ExtendedItem item = new ExtendedItem(); string chg = reader.GetAttribute("chg"); if (!String.IsNullOrEmpty(chg)) item.changeType = (ChangeType) Enum.Parse(typeof(ChangeType), chg, true); string ochg = reader.GetAttribute("ochg"); if (!String.IsNullOrEmpty(ochg)) item.hasOtherPendingChange = bool.Parse(ochg); string xlock = reader.GetAttribute("lock"); if (!String.IsNullOrEmpty(xlock)) item.lockStatus = (LockLevel) Enum.Parse(typeof(LockLevel), xlock, true); item.lockOwner = reader.GetAttribute("lowner"); item.localItem = TfsPath.ToPlatformPath(reader.GetAttribute("local")); item.targetServerItem = reader.GetAttribute("titem"); item.sourceServerItem = reader.GetAttribute("sitem"); item.itemType = (ItemType) Enum.Parse(typeof(ItemType), reader.GetAttribute("type"), true); item.itemId = Convert.ToInt32(reader.GetAttribute("itemid")); item.encoding = Convert.ToInt32(reader.GetAttribute("enc")); item.versionLocal = Convert.ToInt32(reader.GetAttribute("lver")); item.versionLatest = Convert.ToInt32(reader.GetAttribute("latest")); item.deletionId = Convert.ToInt32(reader.GetAttribute("did")); return item; }