public ApiRequestObject(ApiRequest request) { Verb = request.Verb; ActionName = request.ActionName; Arguments = request.ActionArguments; Headers = request.Headers; Data = request.Data; Respond = delegate(object data, Dictionary <string, object> options) { options = Script.Or(options, new Dictionary <string, object>()); HttpStatusCode statusCode = Script.Or((HttpStatusCode)options["statusCode"], (data == null) ? HttpStatusCode.NoContent : HttpStatusCode.OK); ServerResponse response = new ServerResponse(statusCode); if (data != null) { if (data is string) { response.AddTextContent((string)data, Script.Or((string)options["contentType"], "text/plain")); } else { response.AddObjectContent(data); } } return(Deferred.Create <ServerResponse>(response).Task); }; }