public int CheckIn(Workspace workspace, string[] serverItems, string comment, ref SortedList <string, bool> undoneServerItems) { Message msg = new Message(GetWebRequest(new Uri(Url)), "CheckIn"); msg.Body.WriteElementString("workspaceName", workspace.Name); msg.Body.WriteElementString("ownerName", workspace.OwnerName); msg.Body.WriteStartElement("serverItems"); foreach (string serverItem in serverItems) { msg.Body.WriteElementString("string", serverItem); } msg.Body.WriteEndElement(); // write info subtree msg.Body.WriteStartElement("info"); DateTime dt = new DateTime(0); msg.Body.WriteAttributeString("date", dt.ToString("s")); msg.Body.WriteAttributeString("cset", "0"); msg.Body.WriteAttributeString("owner", workspace.OwnerName); msg.Body.WriteElementString("Comment", comment); msg.Body.WriteElementString("CheckinNote", ""); msg.Body.WriteElementString("PolicyOverride", ""); msg.Body.WriteElementString("CheckinOptions", "ValidateCheckinOwner"); msg.Body.WriteEndElement(); int cset = 0; using (HttpWebResponse response = Invoke(msg)) { XmlReader results = msg.ResponseReader(response); cset = Convert.ToInt32(results.GetAttribute("cset")); List <Failure> failures = new List <Failure>(); //TODO: read <ImplicitItems /> //<CheckInResponse xmlns="http://schemas.microsoft.com/TeamFoundation/2005/06/VersionControl/ClientServices/03"><CheckInResult cset="11486"><UndoneServerItems /><ImplicitItems /></CheckInResult><failures /></CheckInResponse> while (results.Read()) { if (results.NodeType == XmlNodeType.Element) { switch (results.Name) { case "Failure": failures.Add(Failure.FromXml(this, results)); break; case "string": undoneServerItems.Add(results.ReadString(), true); break; } } } foreach (Failure failure in failures) { versionControlServer.OnNonFatalError(workspace, failure); } } return(cset); }