internal List <GetOperation> Get(Workspace workspace,
                                         List <GetRequest> requests, bool force, bool noGet)
        {
            if (workspace == null)
            {
                throw new System.ArgumentNullException("workspace");
            }
            var invoker = new SoapInvoker(this);
            var msg     = invoker.CreateEnvelope("Get");

            msg.Add(new XElement(MessageNs + "workspaceName", workspace.Name));
            msg.Add(new XElement(MessageNs + "ownerName", workspace.OwnerName));
            msg.Add(new XElement(MessageNs + "requests", requests.Select(r => r.ToXml(MessageNs))));
            if (force)
            {
                msg.Add(new XElement(MessageNs + "force", force.ToLowString()));
            }
            if (noGet)
            {
                msg.Add(new XElement(MessageNs + "noGet", noGet.ToLowString()));
            }

            List <GetOperation> operations = new List <GetOperation>();
            var result = invoker.InvokeResult();

            foreach (var operation in result.XPathSelectElements("msg:ArrayOfGetOperation/msg:GetOperation", NsResolver))
            {
                operations.Add(GetOperation.FromXml(operation));
            }
            return(operations);
        }
Пример #2
0
        public GetOperation[] UndoPendingChanges(string workspaceName, string ownerName,
                                                 ItemSpec[] itemSpecs)
        {
            Message msg = new Message(GetWebRequest(new Uri(Url)), "UndoPendingChanges");

            msg.Body.WriteElementString("workspaceName", workspaceName);
            msg.Body.WriteElementString("ownerName", ownerName);

            msg.Body.WriteStartElement("items");
            foreach (ItemSpec item in itemSpecs)
            {
                item.ToXml(msg.Body, "ItemSpec");
            }
            msg.Body.WriteEndElement();

            List <GetOperation> operations = new List <GetOperation>();

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

                while (results.Read())
                {
                    if (results.NodeType == XmlNodeType.Element &&
                        results.Name == "GetOperation")
                    {
                        operations.Add(GetOperation.FromXml(ItemUrl, results));
                    }
                }
            }

            return(operations.ToArray());
        }
Пример #3
0
        public GetOperation[] PendChanges(Workspace workspace, ChangeRequest[] changes)
        {
            Message msg = new Message(GetWebRequest(new Uri(Url)), "PendChanges");

            msg.Body.WriteElementString("workspaceName", workspace.Name);
            msg.Body.WriteElementString("ownerName", workspace.OwnerName);
            msg.Body.WriteStartElement("changes");
            foreach (ChangeRequest change in changes)
            {
                change.ToXml(msg.Body, "");
            }
            msg.Body.WriteEndElement();

            List <GetOperation> operations = new List <GetOperation>();
            List <Failure>      faillist   = new List <Failure>();

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

                while (results.Read())
                {
                    if (results.NodeType == XmlNodeType.Element)
                    {
                        switch (results.Name)
                        {
                        case "GetOperation":
                            operations.Add(GetOperation.FromXml(ItemUrl, results));
                            break;

                        case "Failure":
                            faillist.Add(Failure.FromXml(this, results));
                            break;
                        }
                    }
                }
            }

            foreach (Failure failure in faillist)
            {
                versionControlServer.OnNonFatalError(workspace, failure);
            }

            return(operations.ToArray());
        }
Пример #4
0
        public GetOperation[] Get(string workspaceName, string ownerName,
                                  GetRequest[] requests, bool force, bool noGet)
        {
            Message msg = new Message(GetWebRequest(new Uri(Url)), "Get");

            msg.Body.WriteElementString("workspaceName", workspaceName);
            msg.Body.WriteElementString("ownerName", ownerName);

            msg.Body.WriteStartElement("requests");
            foreach (GetRequest request in requests)
            {
                request.ToXml(msg.Body, "");
            }
            msg.Body.WriteEndElement();

            msg.Body.WriteElementString("force", force.ToString().ToLower());
            msg.Body.WriteElementString("noGet", noGet.ToString().ToLower());

            List <GetOperation> operations = new List <GetOperation>();

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

                while (results.Read())
                {
                    if (results.NodeType == XmlNodeType.Element &&
                        results.Name == "GetOperation")
                    {
                        operations.Add(GetOperation.FromXml(ItemUrl, results));
                    }
                }
            }

            return(operations.ToArray());
        }