private async Task RenderResponse(IOwinContext context, bool isPost, string errorMessage, List <UploadedFile> uploadedFiles) { var outputRenderer = configuration.ServiceLocator.GetService <IOutputRenderer>(); if (isPost && context.Request.Headers.Get(Constants.DotvvmFileUploadAsyncHeaderName) == "true") { // modern browser - return JSON if (string.IsNullOrEmpty(errorMessage)) { await outputRenderer.RenderPlainJsonResponse(context, uploadedFiles); } else { await outputRenderer.RenderPlainTextResponse(context, errorMessage); context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; } } else { // old browser - return HTML var template = new FileUploadPageTemplate(); template.FormPostUrl = DotvvmRequestContext.TranslateVirtualPath("~/" + Constants.FileUploadHandlerMatchUrl, context); template.AllowMultipleFiles = context.Request.Query["multiple"] == "true"; if (isPost) { if (string.IsNullOrEmpty(errorMessage)) { template.StartupScript = string.Format("reportProgress(false, 100, {0})", JsonConvert.SerializeObject(uploadedFiles)); } else { template.StartupScript = string.Format("reportProgress(false, 100, {0})", JsonConvert.SerializeObject(errorMessage)); } } await outputRenderer.RenderHtmlResponse(context, template.TransformText()); } }
private async Task RenderResponse(IOwinContext context, bool isPost, string errorMessage, List<UploadedFile> uploadedFiles) { var outputRenderer = configuration.ServiceLocator.GetService<IOutputRenderer>(); if (isPost && context.Request.Headers.Get(Constants.DotvvmFileUploadAsyncHeaderName) == "true") { // modern browser - return JSON if (string.IsNullOrEmpty(errorMessage)) { await outputRenderer.RenderPlainJsonResponse(context, uploadedFiles); } else { await outputRenderer.RenderPlainTextResponse(context, errorMessage); context.Response.StatusCode = (int) HttpStatusCode.InternalServerError; } } else { // old browser - return HTML var template = new FileUploadPageTemplate(); template.FormPostUrl = DotvvmRequestContext.TranslateVirtualPath("~/" + Constants.FileUploadHandlerMatchUrl, context); template.AllowMultipleFiles = context.Request.Query["multiple"] == "true"; if (isPost) { if (string.IsNullOrEmpty(errorMessage)) { template.StartupScript = string.Format("reportProgress(false, 100, {0})", JsonConvert.SerializeObject(uploadedFiles)); } else { template.StartupScript = string.Format("reportProgress(false, 100, {0})", JsonConvert.SerializeObject(errorMessage)); } } await outputRenderer.RenderHtmlResponse(context, template.TransformText()); } }