/// <summary> /// The process request. /// </summary> /// <param name="request"> /// The request. /// </param> /// <returns> /// The <see cref="HttpResponse"/>. /// </returns> public override HttpResponse ProcessRequest(HttpRequest request) { if (request.ProtocolVersion.Major < 3) { HttpResponse response; try { var controller = this.CreateController(request); var actionResult = new ActionInvoker().InvokeAction(controller, request.Action); response = actionResult.GetResponse(); } catch (HttpNotFoundException exception) { response = new HttpResponse(request.ProtocolVersion, HttpStatusCode.NotFound, exception.Message); } catch (Exception exception) { response = new HttpResponse( request.ProtocolVersion, HttpStatusCode.InternalServerError, exception.Message); } return(response); } return(new HttpResponse( request.ProtocolVersion, HttpStatusCode.NotImplemented, "Request cannot be handled.")); }