private string SerializeRequest(ExportDomToImageRequest request) { var options = JsonConvert.SerializeObject(request, GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings); return(options .Replace("\\n", "") .Replace("\\t", "") .Replace("\\", "\\\\") .Replace("\"", "\\\"")); }
public async Task <ImageResponse> ExportDomToImage(ExportDomToImageRequest request) { var scriptPath = Path.Combine(HttpRuntime.AppDomainAppPath, "Scripts", "exportDom.js"); request.Filename = AdjustFilename(request.Filename); var options = SerializeRequest(request); var result = await _phantomJsClient.ExecuteScript(scriptPath, new [] { options }); return(new ImageResponse { Filename = request.Filename, Content = Convert.FromBase64String(result.Output.First()) }); }
public async Task <IHttpActionResult> ExportDomToImage([FromBody] ExportDomToImageRequest request) { if (request == null) { return(BadRequest("Request body is required.")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var result = await _imageExportService.ExportDomToImage(request); return(new FileContentResult(HttpStatusCode.OK, result.Filename, result.Content, this)); } catch (Exception e) { return(InternalServerError(e)); } }