private bool FindMatchingVersion(IResponse response, IRequest request, Stream output, out SiteHost proxy) { //Trace.TraceInformation("Currently loaded: " + _versionTable.VersionsAvailable()); proxy = null; if (_versionTable.IsEmpty()) { Trace.TraceInformation("Rejecting - no loaded APIs"); response.StatusCode = 503; response.ContentType = "text/plain"; Write(output, "\r\nRejected: no APIs are loaded into the host"); return(true); } var version = request.Headers.Get("Version"); var proxyCheck = _versionTable.GetForVersionHeader(version); if (proxyCheck == null || proxyCheck.IsFailure) { Trace.TraceInformation("Rejecting - no matching API"); response.StatusCode = 400; response.ContentType = "text/plain"; Write(output, "\r\nRejected: You must supply a 'Version' header for a known major version"); Write(output, "\r\nCurrently loaded: " + _versionTable.VersionsAvailable()); return(true); } proxy = proxyCheck.ResultData; return(false); }