Example #1
0
 internal ExceptionEventArgs(Workspace workspace, Failure failure)
 {
     this.workspace = workspace;
         this.failure = failure;
 }
Example #2
0
        internal static Failure FromXml(Repository repository, XmlReader reader)
        {
            Failure failure = new Failure();
            string requestType = reader.GetAttribute("req");
            if (!String.IsNullOrEmpty(requestType))
                {
                    failure.requestType = (RequestType) Enum.Parse(typeof(RequestType), requestType, true);
                }

            failure.code = reader.GetAttribute("code");
            failure.localItem = TfsPath.ToPlatformPath(reader.GetAttribute("local"));

            string elementName = reader.Name;

            while (reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.EndElement && reader.Name == elementName)
                        break;

                    if (reader.NodeType == XmlNodeType.Element && reader.Name == "Message")
                            failure.message = reader.ReadString();
                }

            return failure;
        }
 internal void OnNonFatalError(Workspace workspace, Failure failure)
 {
     if (null != NonFatalError) NonFatalError(workspace, new ExceptionEventArgs(workspace, failure));
 }
Example #4
0
        public PendingChange[] QueryPendingSets(string localWorkspaceName, string localWorkspaceOwner,
																						string queryWorkspaceName, string ownerName,
																						ItemSpec[] itemSpecs, bool generateDownloadUrls,
																						out Failure[] failures)
        {
            Message msg = new Message(GetWebRequest (new Uri(Url)), "QueryPendingSets");
            msg.Body.WriteElementString("localWorkspaceName", localWorkspaceName);
            msg.Body.WriteElementString("localWorkspaceOwner", localWorkspaceOwner);
            msg.Body.WriteElementString("queryWorkspaceName", queryWorkspaceName);
            msg.Body.WriteElementString("ownerName", ownerName);

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

            msg.Body.WriteElementString("generateDownloadUrls",
                                                                    generateDownloadUrls.ToString().ToLower());

            List<PendingChange> changes = new List<PendingChange>();
            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 "PendingChange":
                                            changes.Add(PendingChange.FromXml(this, results));
                                            break;
                                        case "Failure":
                                            faillist.Add(Failure.FromXml(this, results));
                                            break;
                                        }
                                }
                        }
                }

            failures = faillist.ToArray();
            return changes.ToArray();
        }
 internal ExceptionEventArgs(Workspace workspace, Failure failure)
 {
     this.workspace = workspace;
     this.failure   = failure;
 }
Example #6
0
        public int CheckIn(Workspace workspace, string[] serverItems, string comment,
                           ref SortedList <string, bool> undoneServerItems)
        {
            Message msg = new Message(GetWebRequest(new Uri(Url)), "CheckIn");

            msg.Body.WriteElementString("workspaceName", workspace.Name);
            msg.Body.WriteElementString("ownerName", workspace.OwnerName);

            msg.Body.WriteStartElement("serverItems");
            foreach (string serverItem in serverItems)
            {
                msg.Body.WriteElementString("string", serverItem);
            }
            msg.Body.WriteEndElement();

            // write info subtree
            msg.Body.WriteStartElement("info");

            DateTime dt = new DateTime(0);

            msg.Body.WriteAttributeString("date", dt.ToString("s"));

            msg.Body.WriteAttributeString("cset", "0");
            msg.Body.WriteAttributeString("owner", workspace.OwnerName);
            msg.Body.WriteElementString("Comment", comment);
            msg.Body.WriteElementString("CheckinNote", "");
            msg.Body.WriteElementString("PolicyOverride", "");
            msg.Body.WriteElementString("CheckinOptions", "ValidateCheckinOwner");
            msg.Body.WriteEndElement();

            int cset = 0;

            using (HttpWebResponse response = Invoke(msg))
            {
                XmlReader results = msg.ResponseReader(response);
                cset = Convert.ToInt32(results.GetAttribute("cset"));

                List <Failure> failures = new List <Failure>();

                //TODO: read <ImplicitItems />
                //<CheckInResponse xmlns="http://schemas.microsoft.com/TeamFoundation/2005/06/VersionControl/ClientServices/03"><CheckInResult cset="11486"><UndoneServerItems /><ImplicitItems /></CheckInResult><failures /></CheckInResponse>
                while (results.Read())
                {
                    if (results.NodeType == XmlNodeType.Element)
                    {
                        switch (results.Name)
                        {
                        case "Failure":
                            failures.Add(Failure.FromXml(this, results));
                            break;

                        case "string":
                            undoneServerItems.Add(results.ReadString(), true);
                            break;
                        }
                    }
                }

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

            return(cset);
        }