internal static Shelveset FromXml(Repository repository, XmlReader reader) { string elementName = reader.Name; string ownerName = reader.GetAttribute("owner"); string name = reader.GetAttribute("name"); Shelveset shelveset = new Shelveset(repository.VersionControlServer, name, ownerName); shelveset.creationDate = DateTime.ParseExact(reader.GetAttribute("date"), DateTimeFormats, null, DateTimeStyles.None); while (reader.Read()) { if (reader.NodeType == XmlNodeType.EndElement && reader.Name == elementName) { break; } if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "Comment": shelveset.comment = reader.ReadString(); break; } } } return(shelveset); }
public int Compare(object xo, object yo) { Shelveset x = xo as Shelveset; Shelveset y = yo as Shelveset; return(ShelvesetGenericComparer.Instance.Compare(x, y)); }
public void Shelve(Workspace workspace, Shelveset shelveset, string[] serverItems, ShelvingOptions options) { Message msg = new Message(GetWebRequest(new Uri(Url)), "Shelve"); msg.Body.WriteElementString("workspaceName", workspace.Name); msg.Body.WriteElementString("workspaceOwner", workspace.OwnerName); msg.Body.WriteStartElement("serverItems"); foreach (string serverItem in serverItems) { msg.Body.WriteElementString("string", serverItem); } msg.Body.WriteEndElement(); shelveset.ToXml(msg.Body, "shelveset"); bool replace = (options & ShelvingOptions.Replace) == ShelvingOptions.Replace; msg.Body.WriteElementString("replace", replace.ToString().ToLower()); using (HttpWebResponse response = Invoke(msg)) { msg.ResponseReader(response); } }
public Shelveset[] QueryShelvesets(string shelvesetName, string shelvesetOwner) { Message msg = new Message(GetWebRequest(new Uri(Url)), "QueryShelvesets"); if (!String.IsNullOrEmpty(shelvesetName)) { msg.Body.WriteElementString("shelvesetName", shelvesetName); } msg.Body.WriteElementString("ownerName", shelvesetOwner); List <Shelveset> shelvesets = new List <Shelveset>(); using (HttpWebResponse response = Invoke(msg)) { XmlReader results = msg.ResponseReader(response); while (results.Read()) { if (results.NodeType == XmlNodeType.Element && results.Name == "Shelveset") { shelvesets.Add(Shelveset.FromXml(this, results)); } } } shelvesets.Sort(ShelvesetGenericComparer.Instance); return(shelvesets.ToArray()); }
public void Shelve(Shelveset shelveset, PendingChange[] changes, ShelvingOptions options) { List <string> serverItems = new List <string>(); foreach (PendingChange change in changes) { // upload new or changed files only if ((change.ItemType == ItemType.File) && (change.IsAdd || change.IsEdit)) { Repository.ShelveFile(Name, OwnerName, change); } serverItems.Add(change.ServerItem); } Repository.Shelve(this, shelveset, serverItems.ToArray(), options); }
public void DeleteShelveset(Shelveset shelveset) { DeleteShelveset(shelveset.Name, shelveset.OwnerName); }