internal static Workspace FromXml(RepositoryService versionControl, XElement element) { string computer = element.Attribute("computer").Value; string name = element.Attribute("name").Value; string owner = element.Attribute("owner").Value; //bool isLocal = Convert.ToBoolean(element.Attribute("islocal").Value); string comment = element.Element(XmlNamespaces.GetMessageElementName("Comment")).Value; DateTime lastAccessDate = DateTime.Parse(element.Element(XmlNamespaces.GetMessageElementName("LastAccessDate")).Value); var folders = new List <WorkingFolder>(element.Element(XmlNamespaces.GetMessageElementName("Folders")) .Elements(XmlNamespaces.GetMessageElementName("WorkingFolder")) .Select(el => WorkingFolder.FromXml(el))); return(new Workspace(versionControl, name, owner, comment, folders, computer) { LastAccessDate = lastAccessDate }); }
public Message(WebRequest request, string methodName) { this.methodName = methodName; this.request = request; this.request.Method = "POST"; // PreAuth can't be used with NTLM afaict //this.request.PreAuthenticate=true; // must allow buffering for NTLM authentication HttpWebRequest req = (HttpWebRequest)request; req.AllowWriteStreamBuffering = true; //http://blogs.x2line.com/al/archive/2005/01/04/759.aspx#780 //req.KeepAlive = false; //req.ProtocolVersion = HttpVersion.Version10; this.request.ContentType = "text/xml; charset=utf-8"; this.request.Headers.Add("X-TFS-Version", "1.0.0.0"); this.request.Headers.Add("accept-language", "en-US"); this.request.Headers.Add("X-VersionControl-Instance", "ac4d8821-8927-4f07-9acf-adbf71119886"); XNamespace xsiNs = XmlSchema.InstanceNamespace; XNamespace xsdNs = XmlSchema.Namespace; this.document = new XDocument(new XDeclaration("1.0", "utf-8", "no")); this.messageElement = new XElement(XmlNamespaces.GetMessageElementName(methodName)); XElement messageEl = new XElement(SoapNs + "Envelope", new XAttribute(XNamespace.Xmlns + "xsi", xsiNs), new XAttribute(XNamespace.Xmlns + "xsd", xsdNs), new XAttribute(XNamespace.Xmlns + "soap", SoapNs), new XElement(SoapNs + "Body", this.messageElement)); this.document.Add(messageEl); }
public void AddParam(string name, params object[] content) { this.messageElement.Add(new XElement(XmlNamespaces.GetMessageElementName(name), content)); }
public XElement ResponseReader(HttpWebResponse response) { XDocument doc = XDocument.Load(response.GetResponseStream()); return(doc.Root.Element(SoapNs + "Body").Element(XmlNamespaces.GetMessageElementName(MethodName + "Response")).Element(XmlNamespaces.GetMessageElementName(MethodName + "Result"))); }