private bool ParseBuildRequest() { if (_server.RequestCache.TryLookupParsedRequest(_requestContext)) { return(true); } // Parse var parseTree = ParseRequest(); if (_requestContext.Failed) { return(false); } // parse/build request var reqBuilder = new RequestParser(_requestContext); if (!reqBuilder.BuildRequest(parseTree)) { return(false); } // Map and validate var mapper = new RequestMapper(_requestContext); mapper.MapAndValidateRequest(); if (_requestContext.Failed) { return(false); } var success = !_requestContext.Failed; if (success && !_requestContext.Metrics.FromCache) { _server.RequestCache.AddParsedRequest(_requestContext); } return(success); }