using System; using System.Collections.Generic; using System.Linq; using System.Net; using Mtp2Dav.WebDAVSharp.Server._1d2086a502937936ebc6bfe19cfa15d855be1c31.Adapters; using Mtp2Dav.WebDAVSharp.Server._1d2086a502937936ebc6bfe19cfa15d855be1c31.Exceptions; using Mtp2Dav.WebDAVSharp.Server._1d2086a502937936ebc6bfe19cfa15d855be1c31.Stores; namespace Mtp2Dav.WebDAVSharp.Server._1d2086a502937936ebc6bfe19cfa15d855be1c31.MethodHandlers { /// /// This class implements the MKCOL HTTP method for WebDAV#. /// internal class WebDavMkColMethodHandler : WebDavMethodHandlerBase, IWebDavMethodHandler { /// /// Gets the collection of the names of the HTTP methods handled by this instance. /// /// /// The names. /// public IEnumerable Names => new[] { "MKCOL" }; /// /// Processes the request. /// /// The through which the request came in from the client. /// /// The /// object containing both the request and response /// objects to use. /// /// The that the is hosting. /// /// public void ProcessRequest(WebDavServer server, IHttpListenerContext context, IWebDavStore store) { if (context.Request.ContentLength64 > 0) throw new WebDavUnsupportedMediaTypeException(); var collection = GetParentCollection(server, store, context.Request.Url); var collectionName = Uri.UnescapeDataString( context.Request.Url.Segments.Last().TrimEnd('/', '\\') ); if (collection.GetItemByName(collectionName) != null) throw new WebDavMethodNotAllowedException(); collection.CreateCollection(collectionName); context.SendSimpleResponse(HttpStatusCode.Created); } } }