private Task <object> GetPrintView(IHttpRequest request) { string formString = request.Form.Form; dynamic form = null; if (!string.IsNullOrWhiteSpace(formString)) { formString = Uri.UnescapeDataString(formString); form = JsonObjectSerializer.Default.Deserialize(formString); } if (form != null) { string documentType = form.DocumentId; string printViewName = form.PrintViewId; string actionId = form.ActionId; object filterObject = form.Query; int pageNumber = form.PageNumber; int pageSize = form.PageSize; FilterCriteria[] filter = null; if (filterObject != null) { filter = JsonObjectSerializer.Default.ConvertFromDynamic <FilterCriteria[]>(filterObject); } pageNumber = Math.Max(pageNumber, 0); pageSize = Math.Min(pageSize, 1000); var printViewSource = _documentApi.GetDocuments(documentType, filter, pageNumber, pageSize); if (!string.IsNullOrEmpty(actionId)) { var context = new ActionContext { Item = new DynamicWrapper() }; context.Item.Parameters = form; context.Item.PrintViewSource = printViewSource; _scriptProcessor.InvokeScriptByType(actionId, context); printViewSource = context.Result; } var printView = _printViewApi.Build(documentType, printViewName, printViewSource); Task.FromResult <object>(new StreamHttpResponse(printView ?? new byte[] { }, HttpConstants.PdfContentType)); } return(Task.FromResult <object>(null)); }