Example #1
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();
        }