Beispiel #1
0
        public ItemSecurity[] QueryItemPermissions(string[] identityNames, string[] items,
                                                   RecursionType recursion)
        {
            Message msg = new Message(GetWebRequest(new Uri(Url)), "QueryItemPermissions");

            msg.Body.WriteStartElement("itemSpecs");
            foreach (string item in items)
            {
                ItemSpec spec = new ItemSpec(item, recursion);
                spec.ToXml(msg.Body, "ItemSpec");
            }
            msg.Body.WriteEndElement();

            List <ItemSecurity> itemSecurities = new List <ItemSecurity>();

            using (HttpWebResponse response = Invoke(msg))
            {
                XmlReader results = msg.ResponseReader(response);

                while (results.Read())
                {
                    if (results.NodeType == XmlNodeType.Element &&
                        results.Name == "ItemSecurity")
                    {
                        itemSecurities.Add(ItemSecurity.FromXml(this, results));
                    }
                }
            }

            return(itemSecurities.ToArray());
        }
        public List <Changeset> QueryHistory(ItemSpec item, VersionSpec versionItem,
                                             VersionSpec versionFrom, VersionSpec versionTo, int maxCount = short.MaxValue)
        {
            var invoker = new SoapInvoker(this);
            var msg     = invoker.CreateEnvelope("QueryHistory");

            msg.Add(item.ToXml(MessageNs + "itemSpec"));
            msg.Add(versionItem.ToXml(MessageNs + "versionItem"));
            if (versionFrom != null)
            {
                msg.Add(versionFrom.ToXml(MessageNs + "versionFrom"));
            }
            if (versionTo != null)
            {
                msg.Add(versionTo.ToXml(MessageNs + "versionTo"));
            }
            msg.Add(new XElement(MessageNs + "maxCount", maxCount));
            msg.Add(new XElement(MessageNs + "includeFiles", false));
            msg.Add(new XElement(MessageNs + "generateDownloadUrls", false));
            msg.Add(new XElement(MessageNs + "slotMode", false));
            msg.Add(new XElement(MessageNs + "sortAscending", false));

            var result = invoker.InvokeResult();

            return(result.Elements(MessageNs + "Changeset").Select(Changeset.FromXml).ToList());
        }
Beispiel #3
0
        public int QueryHistory(string workspaceName, string workspaceOwner,
                                ItemSpec itemSpec, VersionSpec version,
                                string user, VersionSpec versionFrom,
                                VersionSpec versionTo, int maxCount,
                                bool includeFiles, bool slotMode,
                                bool generateDownloadUrls, ref List <Changeset> changes)
        {
            Message msg = new Message(GetWebRequest(new Uri(Url)), "QueryHistory");

            if (!String.IsNullOrEmpty(workspaceName))
            {
                msg.Body.WriteElementString("workspaceName", workspaceName);
            }
            if (!String.IsNullOrEmpty(workspaceOwner))
            {
                msg.Body.WriteElementString("workspaceOwner", workspaceOwner);
            }

            itemSpec.ToXml(msg.Body, "itemSpec");
            if (version != null)
            {
                version.ToXml(msg.Body, "versionItem");
            }
            if (versionFrom != null)
            {
                versionFrom.ToXml(msg.Body, "versionFrom");
            }
            if (versionTo != null)
            {
                versionTo.ToXml(msg.Body, "versionTo");
            }

            if (!String.IsNullOrEmpty(user))
            {
                msg.Body.WriteElementString("user", user);
            }
            msg.Body.WriteElementString("maxCount", Convert.ToString(maxCount));
            msg.Body.WriteElementString("includeFiles", Convert.ToString(includeFiles).ToLower());
            msg.Body.WriteElementString("generateDownloadUrls", Convert.ToString(generateDownloadUrls).ToLower());
            msg.Body.WriteElementString("slotMode", Convert.ToString(slotMode).ToLower());

            int cnt = 0;

            using (HttpWebResponse response = Invoke(msg))
            {
                XmlReader results = msg.ResponseReader(response);

                while (results.Read())
                {
                    if (results.NodeType == XmlNodeType.Element &&
                        results.Name == "Changeset")
                    {
                        changes.Add(Changeset.FromXml(this, results));
                        cnt++;
                    }
                }
            }

            return(cnt);
        }
Beispiel #4
0
 internal void ToXml(XmlWriter writer, string element)
 {
     writer.WriteStartElement(element);
     writer.WriteAttributeString("ex", exclude.ToString().ToLower());
     ItemSpec.ToXml(writer, "ItemSpec");
     Version.ToXml(writer, "Version");
     writer.WriteEndElement();
 }
Beispiel #5
0
 internal void ToXml(XmlWriter writer, string element)
 {
     writer.WriteStartElement("GetRequest");
     if (itemSpec != null)
     {
         itemSpec.ToXml(writer, "ItemSpec");
     }
     versionSpec.ToXml(writer, "VersionSpec");
     writer.WriteEndElement();
 }
        internal XElement ToXml(XNamespace ns)
        {
            XElement result = new XElement(ns + "GetRequest");

            if (ItemSpec != null)
            {
                result.Add(ItemSpec.ToXml(ns + "ItemSpec"));
            }
            result.Add(VersionSpec.ToXml(ns + "VersionSpec"));
            return(result);
        }
Beispiel #7
0
        public ChangesetMerge[] QueryMerges(string workspaceName, string workspaceOwner, 
																				ItemSpec source, VersionSpec versionSource,
																				ItemSpec target, VersionSpec versionTarget,
																				VersionSpec versionFrom, VersionSpec versionTo,
																				int maxChangesets)
        {
            Message msg = new Message(GetWebRequest (new Uri(Url)), "QueryMerges");

            if (!String.IsNullOrEmpty(workspaceName)) msg.Body.WriteElementString("workspaceName", workspaceName);
            if (!String.IsNullOrEmpty(workspaceOwner)) msg.Body.WriteElementString("workspaceOwner", workspaceOwner);

            if (source != null) source.ToXml(msg.Body, "source");
            if (versionSource != null) versionSource.ToXml(msg.Body, "versionSource");

            target.ToXml(msg.Body, "target");
            versionTarget.ToXml(msg.Body, "versionTarget");

            if (versionFrom != null) versionFrom.ToXml(msg.Body, "versionFrom");
            if (versionTo != null) versionTo.ToXml(msg.Body, "versionTo");

            msg.Body.WriteElementString("maxChangesets", Convert.ToString(maxChangesets));

            List<ChangesetMerge> merges = new List<ChangesetMerge>();
            Dictionary<int, Changeset> changesets = new Dictionary<int, Changeset>();
            using (HttpWebResponse response = Invoke(msg))
                {
                    XmlReader results = msg.ResponseReader(response);

                    while (results.Read())
                        {
                            if (results.NodeType != XmlNodeType.Element) continue;

                            if (results.Name == "ChangesetMerge")
                                {
                                    merges.Add(ChangesetMerge.FromXml(this, results));
                                }
                            else if (results.Name == "Changeset")
                                {
                                    Changeset changeset = Changeset.FromXml(this, results);
                                    changesets.Add(changeset.ChangesetId, changeset);
                                }
                        }
                }

            foreach (ChangesetMerge merge in merges)
                {
                    Changeset changeset;
                    if (changesets.TryGetValue(merge.TargetVersion, out changeset))
                            merge.TargetChangeset = changeset;
                }

            return merges.ToArray();
        }
Beispiel #8
0
        public ItemSecurity[] QueryItemPermissions(string[] identityNames, string[] items, 
																							 RecursionType recursion)
        {
            Message msg = new Message(GetWebRequest (new Uri(Url)), "QueryItemPermissions");

            msg.Body.WriteStartElement("itemSpecs");
            foreach (string item in items)
                {
                    ItemSpec spec = new ItemSpec(item, recursion);
                    spec.ToXml(msg.Body, "ItemSpec");
                }
            msg.Body.WriteEndElement();

            List<ItemSecurity> itemSecurities = new List<ItemSecurity>();
            using (HttpWebResponse response = Invoke(msg))
                {
                    XmlReader results = msg.ResponseReader(response);

                    while (results.Read())
                        {
                            if (results.NodeType == XmlNodeType.Element &&
                                    results.Name == "ItemSecurity")
                                itemSecurities.Add(ItemSecurity.FromXml(this, results));
                        }
                }

            return itemSecurities.ToArray();
        }
Beispiel #9
0
        public int QueryHistory(string workspaceName, string workspaceOwner,
														 ItemSpec itemSpec, VersionSpec version,
														 string user, VersionSpec versionFrom,
														 VersionSpec versionTo, int maxCount,
														 bool includeFiles, bool slotMode,
														 bool generateDownloadUrls, ref List<Changeset> changes)
        {
            Message msg = new Message(GetWebRequest (new Uri(Url)), "QueryHistory");

            if (!String.IsNullOrEmpty(workspaceName)) msg.Body.WriteElementString("workspaceName", workspaceName);
            if (!String.IsNullOrEmpty(workspaceOwner)) msg.Body.WriteElementString("workspaceOwner", workspaceOwner);

            itemSpec.ToXml(msg.Body, "itemSpec");
            if (version != null) version.ToXml(msg.Body, "versionItem");
            if (versionFrom != null) versionFrom.ToXml(msg.Body, "versionFrom");
            if (versionTo != null) versionTo.ToXml(msg.Body, "versionTo");

            if (!String.IsNullOrEmpty(user)) msg.Body.WriteElementString("user", user);
            msg.Body.WriteElementString("maxCount", Convert.ToString(maxCount));
            msg.Body.WriteElementString("includeFiles", Convert.ToString(includeFiles).ToLower());
            msg.Body.WriteElementString("generateDownloadUrls", Convert.ToString(generateDownloadUrls).ToLower());
            msg.Body.WriteElementString("slotMode", Convert.ToString(slotMode).ToLower());

            int cnt = 0;
            using (HttpWebResponse response = Invoke(msg))
                {
                    XmlReader results = msg.ResponseReader(response);

                    while (results.Read())
                        {
                            if (results.NodeType == XmlNodeType.Element &&
                                    results.Name == "Changeset")
                                {
                                    changes.Add(Changeset.FromXml(this, results));
                                    cnt++;
                                }
                        }
                }

            return cnt;
        }
Beispiel #10
0
        public ChangesetMerge[] QueryMerges(string workspaceName, string workspaceOwner,
                                            ItemSpec source, VersionSpec versionSource,
                                            ItemSpec target, VersionSpec versionTarget,
                                            VersionSpec versionFrom, VersionSpec versionTo,
                                            int maxChangesets)
        {
            Message msg = new Message(GetWebRequest(new Uri(Url)), "QueryMerges");

            if (!String.IsNullOrEmpty(workspaceName))
            {
                msg.Body.WriteElementString("workspaceName", workspaceName);
            }
            if (!String.IsNullOrEmpty(workspaceOwner))
            {
                msg.Body.WriteElementString("workspaceOwner", workspaceOwner);
            }

            if (source != null)
            {
                source.ToXml(msg.Body, "source");
            }
            if (versionSource != null)
            {
                versionSource.ToXml(msg.Body, "versionSource");
            }

            target.ToXml(msg.Body, "target");
            versionTarget.ToXml(msg.Body, "versionTarget");

            if (versionFrom != null)
            {
                versionFrom.ToXml(msg.Body, "versionFrom");
            }
            if (versionTo != null)
            {
                versionTo.ToXml(msg.Body, "versionTo");
            }

            msg.Body.WriteElementString("maxChangesets", Convert.ToString(maxChangesets));

            List <ChangesetMerge>       merges     = new List <ChangesetMerge>();
            Dictionary <int, Changeset> changesets = new Dictionary <int, Changeset>();

            using (HttpWebResponse response = Invoke(msg))
            {
                XmlReader results = msg.ResponseReader(response);

                while (results.Read())
                {
                    if (results.NodeType != XmlNodeType.Element)
                    {
                        continue;
                    }

                    if (results.Name == "ChangesetMerge")
                    {
                        merges.Add(ChangesetMerge.FromXml(this, results));
                    }
                    else if (results.Name == "Changeset")
                    {
                        Changeset changeset = Changeset.FromXml(this, results);
                        changesets.Add(changeset.ChangesetId, changeset);
                    }
                }
            }

            foreach (ChangesetMerge merge in merges)
            {
                Changeset changeset;
                if (changesets.TryGetValue(merge.TargetVersion, out changeset))
                {
                    merge.TargetChangeset = changeset;
                }
            }

            return(merges.ToArray());
        }