コード例 #1
0
        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);
        }
コード例 #2
0
            public int Compare(object xo, object yo)
            {
                Shelveset x = xo as Shelveset;
                Shelveset y = yo as Shelveset;

                return(ShelvesetGenericComparer.Instance.Compare(x, y));
            }
コード例 #3
0
ファイル: Repository.cs プロジェクト: arleyschrock/opentf
        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);
            }
        }
コード例 #4
0
ファイル: Repository.cs プロジェクト: arleyschrock/opentf
        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());
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 public void DeleteShelveset(Shelveset shelveset)
 {
     DeleteShelveset(shelveset.Name, shelveset.OwnerName);
 }