RepositoryPathToUrl() public method

public RepositoryPathToUrl ( string repositoryPath ) : string
repositoryPath string
return string
コード例 #1
0
        public void HandleMethod()
        {
            _handler.Context.Response.StatusCode   = 207;
            _handler.Context.Response.ContentType  = "text/xml";
            _handler.Context.Response.CacheControl = "no-cache";
            _handler.Context.Response.AddHeader("Content-Location", _handler.RepositoryPathToUrl(_handler.Path));

            RequestDepth = Common.GetDepth(_handler.Context.Request.Headers["Depth"]);

            switch (RequestDepth)
            {
            case Depth.Current:
            {
                ProcessCurrent();
                break;
            }

            case Depth.Children:
            {
                ProcessChildren();
                break;
            }

            case Depth.Infinity:
            {
                ProcessChildren();
                break;
                //throw (new NotImplementedException("Infinity request is not implemented."));
            }
            }
            if (_writer == null)
            {
                return;
            }
            _writer.Flush();
            _writer.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);

            var    reader = new System.IO.StreamReader(_writer.BaseStream, System.Text.Encoding.UTF8);
            string ret    = reader.ReadToEnd();

            _writer.Close();

            #region Debug

            System.Diagnostics.Debug.Write(string.Concat("RESPONSE: ", ret));

            #endregion

            _handler.Context.Response.Write(ret);
        }
コード例 #2
0
ファイル: Delete.cs プロジェクト: pchaozhong/FlexNet
 private System.Xml.XmlTextWriter GetLockedErrorResponse(string path)
 {
     System.Xml.XmlTextWriter writer = Common.GetXmlWriter();
     writer.WriteStartElement(XmlNS.DAV_Prefix, "multistatus", XmlNS.DAV);
     writer.WriteStartElement(XmlNS.DAV_Prefix, "response", XmlNS.DAV);
     writer.WriteStartElement(XmlNS.DAV_Prefix, "href", XmlNS.DAV);
     writer.WriteString(_handler.RepositoryPathToUrl(path));
     writer.WriteEndElement(); // multistatus/response/href
     writer.WriteStartElement(XmlNS.DAV_Prefix, "status", XmlNS.DAV);
     writer.WriteString("HTTP/1.1 423 Locked");
     writer.WriteEndElement(); // multistatus/response/status
     writer.WriteEndElement(); // multistatus/response
     writer.WriteEndElement(); // multistatus
     return(writer);
 }
コード例 #3
0
ファイル: Proppatch.cs プロジェクト: pchaozhong/FlexNet
        //		request:
        //		<?xml version="1.0" encoding="utf-8" ?>
        //		<D:propertyupdate xmlns:D="DAV:" xmlns:Z="urn:schemas-microsoft-com:">
        //			<D:set>
        //				<D:prop>
        //					<Z:Win32CreationTime>Mon, 11 Apr 2005 13:05:05 GMT</Z:Win32CreationTime>
        //					<Z:Win32LastAccessTime>Tue, 17 May 2005 13:47:40 GMT</Z:Win32LastAccessTime>
        //					<Z:Win32LastModifiedTime>Mon, 11 Apr 2005 13:05:05 GMT</Z:Win32LastModifiedTime>
        //					<Z:Win32FileAttributes>00000000</Z:Win32FileAttributes>
        //				</D:prop>
        //			</D:set>
        //		</D:propertyupdate>

        // Erre a request-re egy nem valos valaszt adunk, mert a repository-ban maskep ertelmezettek ezek a dolgok
        public void HandleMethod()
        {
            _handler.Context.Response.StatusCode = 207;

            var xd    = new XmlDocument();
            var xmlns = new XmlNamespaceManager(xd.NameTable);

            xmlns.AddNamespace("D", XmlNS.DAV);
            xmlns.AddNamespace("Z", XmlNS.Win32);
            xd.Load(_handler.Context.Request.InputStream);

            _writer = Common.GetXmlWriter();

            _writer.WriteStartElement(XmlNS.DAV_Prefix, "multistatus", XmlNS.DAV);
            _writer.WriteStartElement(XmlNS.DAV_Prefix, "response", XmlNS.DAV);
            _writer.WriteStartElement(XmlNS.DAV_Prefix, "href", XmlNS.DAV);
            _writer.WriteString(_handler.RepositoryPathToUrl(_handler.Path));
            _writer.WriteEndElement(); // href
            _writer.WriteStartElement(XmlNS.DAV_Prefix, "propstat", XmlNS.DAV);

            foreach (XmlNode xn in xd.SelectNodes("/D:propertyupdate/D:set/D:prop/Z:*", xmlns))
            {
                _writer.WriteStartElement(XmlNS.DAV_Prefix, "prop", XmlNS.DAV);
                _writer.WriteStartElement(XmlNS.Win32_Prefix, xn.LocalName, XmlNS.Win32);
                _writer.WriteString(xn.InnerText);
                _writer.WriteEndElement(); // xn.localname

                //_writer.WriteStartElement(XmlNS.DAV_Prefix, "statux", XmlNS.DAV);
                _writer.WriteStartElement(XmlNS.DAV_Prefix, "status", XmlNS.DAV);
                _writer.WriteString("HTTP/1.1 200 OK");
                _writer.WriteEndElement(); //status

                _writer.WriteEndElement(); // prop
            }

            _writer.WriteEndElement(); // propstat
            _writer.WriteEndElement(); // response
            _writer.WriteEndElement(); // multistatus

            _writer.Flush();
            _writer.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);

            var    reader = new System.IO.StreamReader(_writer.BaseStream, System.Text.Encoding.UTF8);
            string ret    = reader.ReadToEnd();

            _writer.Close();

            _handler.Context.Response.Write(ret);
            _handler.Context.Response.Flush();
        }