public virtual void HandleError(ApplicationError applicationError)
        {
            applicationError.ResetResponse();

            var httpContextWrapper = new HttpContextWrapper(applicationError.HttpContext);

            var routeData = new RouteData()
                .WithValue("controller", this.GetControllerName())
                .WithValue("action", GetActionName(applicationError.StatusCode))
                .WithValue("exception", applicationError.LastException);

            var requestContext = new RequestContext(httpContextWrapper, routeData);

            ((IController)this).Execute(requestContext);
        }