private static string GetPropertyName(XmlElement element) { string propertyName = BrokenXml.UnEscape(element.LocalName); if (element.NamespaceURI == WebDav.Namespaces.TIGRISSVN) { propertyName = "svn:" + propertyName; } return(propertyName); }
private void OutputElement(TextWriter output, XmlElement element) { string elementName = BrokenXml.UnEscape(element.LocalName); if (element.NamespaceURI == WebDav.Namespaces.SVNDAV) { output.Write("<ns3:" + elementName + "/>\r\n"); } else if (element.NamespaceURI == WebDav.Namespaces.TIGRISSVN) { output.Write("<ns1:" + elementName + "/>\r\n"); } else if (element.NamespaceURI == WebDav.Namespaces.DAV) { output.Write("<ns0:" + elementName + "/>\r\n"); } else //custom { output.Write("<ns2:" + elementName + "/>\r\n"); } }
protected override void Handle(IHttpContext context, TFSSourceControlProvider sourceControlProvider) { IHttpRequest request = context.Request; IHttpResponse response = context.Response; string originalXml; using (StreamReader sr = new StreamReader(request.InputStream)) { originalXml = sr.ReadToEnd(); } try { string correctXml = BrokenXml.Escape(originalXml); string path = GetPath(request); bool extendedNamespaces = false; if (correctXml.Contains("http://subversion.tigris.org/xmlns/custom/")) { extendedNamespaces = true; } PropertyUpdateData data = Helper.DeserializeXml <PropertyUpdateData>(correctXml); SetResponseSettings(response, "text/xml; charset=\"utf-8\"", Encoding.UTF8, 207); using (StreamWriter output = new StreamWriter(response.OutputStream)) { PropPatch(sourceControlProvider, data, extendedNamespaces, path, output); } } catch { RequestCache.Items["RequestBody"] = originalXml; throw; } }