Raven.Database.Server.HttpServer.DispatchRequest C# (CSharp) Méthode

DispatchRequest() private méthode

private DispatchRequest ( IHttpContext ctx ) : bool
ctx IHttpContext
Résultat bool
		private bool DispatchRequest(IHttpContext ctx)
		{
			SetupRequestToProperDatabase(ctx);

			CurrentOperationContext.Headers.Value = ctx.Request.Headers;

			if (ctx.RequiresAuthentication &&
				requestAuthorizer.Authorize(ctx) == false)
				return false;

			try
			{
				OnDispatchingRequest(ctx);

				if (DefaultConfiguration.HttpCompression)
					AddHttpCompressionIfClientCanAcceptIt(ctx);

				// Cross-Origin Resource Sharing (CORS) is documented here: http://www.w3.org/TR/cors/
				AddAccessControlHeaders(ctx);
				if (ctx.Request.HttpMethod == "OPTIONS")
					return false;

				foreach (var requestResponderLazy in RequestResponders)
				{
					var requestResponder = requestResponderLazy.Value;
					if (requestResponder.WillRespond(ctx))
					{
						requestResponder.Respond(ctx);
						return requestResponder.IsUserInterfaceRequest;
					}
				}
				ctx.SetStatusToBadRequest();
				if (ctx.Request.HttpMethod == "HEAD")
					return false;
				ctx.Write(
					@"
<html>
	<body>
		<h1>Could not figure out what to do</h1>
		<p>Your request didn't match anything that Raven knows to do, sorry...</p>
	</body>
</html>
");
			}
			finally
			{
				CurrentOperationContext.Headers.Value = new NameValueCollection();
				currentDatabase.Value = DefaultResourceStore;
				currentConfiguration.Value = DefaultConfiguration;
			}
			return false;
		}