示例#1
0
        private static string GetPropertyName(XmlElement element)
        {
            string propertyName = BrokenXml.UnEscape(element.LocalName);

            if (element.NamespaceURI == WebDav.Namespaces.TIGRISSVN)
            {
                propertyName = "svn:" + propertyName;
            }
            return(propertyName);
        }
示例#2
0
        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");
            }
        }
示例#3
0
        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;
            }
        }