public void Handle(HttpStatusCode statusCode, NancyContext context)
        {
            var formatter = _responseFormatterFactory.Create(context);

            context.Response            = formatter.AsJson(new NotFoundResponse(context)).WithContentType("application/vnd.siren+json; charset=utf-8");
            context.Response.StatusCode = HttpStatusCode.NotFound;
        }
        public void Handle(HttpStatusCode statusCode, NancyContext context)
        {
            var formatter = _responseFormatterFactory.Create(context);

            context.Response.StatusCode = HttpStatusCode.OK;

            object errorObject;

            context.Items.TryGetValue(NancyEngine.ERROR_EXCEPTION, out errorObject);
            var exception = errorObject as Exception;

            if (exception != null)
            {
                var managedException = exception.InnerException as HypermediaEngineException;
                if (managedException != null)
                {
                    context.Response = formatter.AsJson(managedException.Response).WithContentType("application/vnd.siren+json; charset=utf-8");
                    return;
                }

                var bindingException = exception.InnerException as ModelBindingException;
                if (bindingException != null)
                {
                    context.Response = formatter.AsJson(new BadRequestResponse(context, bindingException.PropertyBindingExceptions)).WithContentType("application/vnd.siren+json; charset=utf-8");
                    return;
                }
            }

            context.Response = formatter.AsJson(new InternalServerErrorResponse(context)).WithContentType("application/vnd.siren+json; charset=utf-8");
        }