public Task <RenderResponse> RenderAsync(string executionId, RenderRequest request)
 {
     using (var context = this.SetMessageHeaders(executionId))
     {
         return(this.RenderAsync(request));
     }
 }
Example #2
0
        public static void GifNotification(DisplayWindow window, int displayTime, string imagineFile, string soundFile, int textheight, string content)
        {
            int oWidth  = window.Width;
            int oHeight = window.Height;

            ImagineRequest imagineRender = new ImagineRequest()
            {
                x      = 0,
                y      = 0,
                width  = oWidth,
                height = oHeight - (textheight * 2),
            };

            imagineRender.SetFromFile(imagineFile);

            TextRequest textRender = new TextRequest()
            {
                x          = 5,
                y          = oHeight - (textheight * 2),
                width      = oWidth - 5,
                height     = textheight,
                autoResize = true,
                text       = content,
            };

            SoundRequest soundRequest = new SoundRequest()
            {
                file = soundFile
            };

            RenderRequest request = new RenderRequest(displayTime, soundRequest, imagineRender, textRender);

            window.EnqueueRenders(request);
        }
        public async Task <Report> RenderViewAsync(HttpContext context, RenderRequest renderRequest, RouteData routeData, string viewName, object model)
        {
            var str = await RenderViewToStringAsync(context, routeData, viewName, model);

            renderRequest.Template.Content = str;
            return(await _renderService.RenderAsync(renderRequest));
        }
        /// <summary>
        /// Render a single RenderSettings
        /// </summary>
        public async Task <RenderResponse> Render(RenderRequest req)
        {
            if (Client == null)
            {
                throw new InvalidOperationException("Client not connected");
            }
            RenderResponse resp = null;

            _taskCancelToken = new CancellationTokenSource();
            try
            {
                CurrentTask = req.TaskID;

                UpdateActivity("Render Loading..");

                if (Client != null)
                {
                    resp = await Client.Send <RenderResponse>(req, _taskCancelToken.Token);
                }
            }
            finally
            {
                UpdateActivity("");
                CurrentTask      = null;
                _taskCancelToken = null;
            }

            return(resp);
        }
Example #5
0
        public async Task <RenderResponse> Handler(RenderRequest request)
        {
            var response = new RenderResponse();

            try
            {
                var serviceCollection = new ServiceCollection();
                ConfigureServices(serviceCollection);
                var serviceProvider = serviceCollection.BuildServiceProvider();

                var templateStrategyProvider = new TemplateStrategyProvider(serviceProvider);
                var strategy = templateStrategyProvider.GetStrategy(request.TemplateType);

                CultureInfo.CurrentUICulture = new CultureInfo(request.Culture, true);
                var htmlSource = await strategy.HandleAsync(request.ModelJson);

                var premailerResult = PreMailer.Net.PreMailer.MoveCssInline(htmlSource, true);

                response.HtmlResult = premailerResult.Html;
            }
            catch (Exception e)
            {
                response.Exception = e;
            }

            return(response);
        }
        public async Task <RenderResult> Post([FromBody] RenderRequest renderRequest)
        {
            try
            {
                var layoutServiceResult = renderRequest.Args.LayoutServiceResult;
                _layoutServiceResultProvider.Result = layoutServiceResult;

                var appType = _blazorAppConfiguration.AppComponentType;
                var appDomElementSelector = _blazorAppConfiguration.AppDomElementSelector;
                var pageEditing           = layoutServiceResult.Sitecore.Context.PageEditing;
                var appHtml = await _preRenderer.RenderAppAsync(appType, appDomElementSelector, ControllerContext, ViewData, TempData, pageEditing);

                var resultModel = new RenderResult
                {
                    Html   = appHtml,
                    Status = (int)HttpStatusCode.OK
                };
                return(resultModel);
            }
            catch (Exception ex)
            {
                return(new RenderResult
                {
                    Html = $"<html><body><h1>An error occurred during server-side rendering.</h1><div>{ex.Message}</div></body></html>",
                    Status = (int)HttpStatusCode.InternalServerError
                });
            }
        }
 private void getImage(string displayName, RenderRequest renderRequest)
 {
     if (UseCache)
     {
         if (!string.IsNullOrEmpty(renderRequest.Context))
         {
             if (avatarImageCacher.TryGetCachedImage(renderRequest.Handle, out var icon, renderRequest.Context))
             {
                 pendingRenderRequests.Remove(displayName);
                 dispatchImageReady(renderRequest.Handle, icon);
                 return;
             }
         }
         else
         {
             Log.LogErrorFormatted(this, "Could not find a context string to check the cache with for display name: {0}", displayName);
         }
     }
     if (isRenderingActive)
     {
         renderImage(renderRequest);
     }
     else
     {
         pausedRenderRequests.Add(displayName);
     }
 }
Example #8
0
        public async Task <IActionResult> TestTemplate()
        {
            try
            {
                // *************************************************************
                // Create output using json and mustache template
                // *************************************************************
                RenderRequest request = new RenderRequest()
                {
                    JsonString  = "{\"title\": \"Sample Template\", \"name\": \"McTesty\"}",
                    RenderJsUrl = _configuration.GetSection("Constants").GetSection("RenderJsUrl").Value,
                    Template    = _configuration.GetSection("Constants").GetSection("SampleTemplate").Value
                };

                string result = await TemplateHelper.RenderDocument(_nodeServices, request);

                // *************************************************************
                // Convert results to Pdf
                // *************************************************************
                PdfRequest pdfRequest = new PdfRequest()
                {
                    Html        = "<h1>" + result + "<h1>",
                    PdfFileName = "TestTemplate"
                };

                byte[] pdfResponse = PdfDocument.BuildPdf(_configuration, pdfRequest);

                return(File(pdfResponse, "application/pdf"));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Example #9
0
        public static string SerializeRenderRequest(RenderRequest rr, IContractResolver dataContractResolver = null)
        {
            // a hack to avoid camel casing the data prop values
            var data = rr.Data;

            rr.Data = null;

            var js = new JsonSerializer()
            {
                ContractResolver           = new CamelCasePropertyNamesContractResolver(),
                NullValueHandling          = NullValueHandling.Ignore,
                ReferenceLoopHandling      = ReferenceLoopHandling.Serialize,
                PreserveReferencesHandling = PreserveReferencesHandling.Objects
            };

            var jo = JObject.FromObject(rr, js);

            if (data != null)
            {
                js.ContractResolver = dataContractResolver ?? new DefaultContractResolver();
                jo["data"]          = JObject.FromObject(data, js);
            }

            jo["overwrites"]?["template"]?.Values().ToList()
            .ForEach((val => jo["template"][val.Path.Replace("overwrites.template.", "")] = val));

            jo["overwrites"]?["options"]?.Values().ToList()
            .ForEach((val => jo["options"][val.Path.Replace("overwrites.options.", "")] = val));

            jo.Children().FirstOrDefault(c => c.Path.Contains("overwrites"))?.Remove();

            return(jo.ToString());
        }
Example #10
0
        public byte[] Render(string xml, string template, OutputFormat outputFormat)
        {
            try
            {
                var request = new RenderRequest
                {
                    Input = new XmlDataSource
                    {
                        Content = xml,
                        Format  = InputFormat.XML
                    },
                    Parameters = new RenderingParameters
                    {
                        OutputFormat      = outputFormat,
                        PDFOutputSettings = new PDFOutputSettings {
                            ImageCompression = PDFImageCompression.FLAT
                        },
                        Template = new ServerDocumentTemplate {
                            ID = template
                        }
                    }
                };

                return(_ecrionServiceClient.Render(request).RenderResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #11
0
 public JsReportFeature(HttpContext context)
 {
     RenderRequest = new RenderRequest();
     RenderRequest.Template.Engine = Types.Engine.None;
     Context = context;
     RenderRequest.Options.Base = $"{Context.Request.Scheme}://{Context.Request.Host}";
     Enabled = true;
 }
Example #12
0
 public JsReportFeature(HttpContextBase context)
 {
     RenderRequest = new RenderRequest();
     RenderRequest.Template.Engine = Types.Engine.None;
     Context = context;
     RenderRequest.Options.Base = GetBaseUrl(context.Request);
     Enabled = true;
 }
Example #13
0
 private void UnqueueRender()
 {
     if (displayQueue.Count > 0 && !isRendering)
     {
         RenderRequest request = displayQueue.Dequeue();
         request.Render(this);
         isRendering = true;
     }
 }
Example #14
0
 public static RenderTicket CreateSuccess(RenderRequest request, int position)
 {
     return(new RenderTicket
     {
         IsEnqueued = true,
         Worldname = request.Worldname,
         Position = position
     });
 }
Example #15
0
 public static RenderTicket CreateDuplicate(RenderRequest request, int position)
 {
     return(new RenderTicket
     {
         IsEnqueued = false,
         Worldname = request.Worldname,
         Position = position,
         Message = $"The job is already enqueued on position {position}."
     });
 }
Example #16
0
        private void Update()
        {
            RenderRequest r = requests[0];

            r.lookDir = lookDir;

            requests[0] = r;
            exposureRenderer.RenderSize = new int2(renderSize.x, renderSize.y);
            exposureRenderer.Render(requests, float4x4.identity);
        }
        private void onAvatarDetailsInitialized(AvatarDetailsData avatarDetailsData)
        {
            avatarDetailsData.OnInitialized -= onAvatarDetailsInitialized;
            DataEntityHandle entityByComponent = dataEntityCollection.GetEntityByComponent(avatarDetailsData);
            string           displayName       = dataEntityCollection.GetComponent <DisplayNameData>(entityByComponent).DisplayName;

            if (pendingRenderRequests.ContainsKey(displayName))
            {
                RenderRequest renderRequest = pendingRenderRequests[displayName];
                renderRequest.AvatarDetailsData = avatarDetailsData;
                getImage(displayName, renderRequest);
            }
        }
Example #18
0
        public override void GetJobInfo(TaskListener <IList <JobInfo> > listener, IList <IRenderRequest> renderRequests)
        {
            IList <JobInfo> jobs = new List <JobInfo>();

            for (int i = 0; i < renderRequests?.Count; ++i)
            {
                RenderRequest request  = (RenderRequest)renderRequests[i];
                string        renderer = request.Browser.Name.GetAttribute <System.Runtime.Serialization.EnumMemberAttribute>().Value;
                jobs.Add(new JobInfo()
                {
                    EyesEnvironment = "MockEnvironment", Renderer = renderer
                });
            }
            listener.OnComplete(jobs);
        }
Example #19
0
        public async Task <Report> RenderAsync(RenderRequest request, CancellationToken ct = default)
        {
            var response = await _nodeServices.InvokeAsync <byte[]>("./wwwroot/create-pdf", request.Template.Content);

            var stream = new MemoryStream();

            stream.Write(response, 0, response.Length);
            stream.Position = 0;
            var meta = new Dictionary <string, string>();

            return(new Report {
                Content = stream,
                Meta = SerializerHelper.ParseReportMeta(meta)
            });
        }
 private void resumeRender(string displayName)
 {
     if (pendingRenderRequests.ContainsKey(displayName))
     {
         RenderRequest renderRequest = pendingRenderRequests[displayName];
         if (renderRequest.AvatarDetailsData != null || dataEntityCollection.TryGetComponent <AvatarDetailsData>(renderRequest.Handle, out renderRequest.AvatarDetailsData))
         {
             getImage(displayName, renderRequest);
         }
         else
         {
             otherPlayerDetailsRequestBatcher.RequestOtherPlayerDetails(renderRequest.Handle);
         }
     }
 }
        protected override BitmapSource RenderDataFrame(DataRect data, Rect output, RenderRequest renderRequest)
        {
            var points = GetLastPointsInDataRect(data);

            if (points == null)
            {
                return(EmptyBitmap);
            }
            else
            {
                _groupedMarkers.Transform     = Plotter2D.Transform;
                _groupedMarkers.LastSelection = LastSelectionArgs;
                return(_groupedMarkers.DrawImage((int)output.Width, (int)output.Height, points, renderRequest));
            }
        }
Example #22
0
        private static async Task DebugExampleSingleTemplateAsync()
        {
            var model = new ExampleSingleTemplateModel
            {
                PlainText = "Test single template"
            };
            var request = new RenderRequest
            {
                ModelJson    = JsonConvert.SerializeObject(model),
                TemplateType = TemplateType.ExampleSingleTemplate,
                Culture      = "es-ES"
            };
            var result = await new RazorRendererFunction().Handler(request);

            Console.Write(result);
        }
Example #23
0
        public async Task <IActionResult> GetOwnerVerificationPdf([FromBody] string ownersJson, [FromRoute] string name)
        {
            try
            {
                string fileName = name + ".pdf";
                _logger.LogInformation("GetOwnerVerificationPdf [FileName: {0}]", fileName);

                // *************************************************************
                // Create output using json and mustache template
                // *************************************************************
                RenderRequest request = new RenderRequest()
                {
                    JsonString  = ownersJson,
                    RenderJsUrl = _configuration.GetSection("Constants").GetSection("RenderJsUrl").Value,
                    Template    = _configuration.GetSection("Constants").GetSection("OwnerVerificationTemplate").Value
                };

                _logger.LogInformation("GetOwnerVerificationPdf [FileName: {0}] - Render Html", fileName);
                string result = await TemplateHelper.RenderDocument(_nodeServices, request);

                _logger.LogInformation("GetOwnerVerificationPdf [FileName: {0}] - Html Length: {1}", fileName, result.Length);

                // *************************************************************
                // Convert results to Pdf
                // *************************************************************
                PdfRequest pdfRequest = new PdfRequest()
                {
                    Html        = result,
                    PdfFileName = fileName
                };

                _logger.LogInformation("GetOwnerVerificationPdf [FileName: {0}] - Gen Pdf", fileName);
                byte[] pdfResponseBytes = PdfDocument.BuildPdf(_configuration, pdfRequest);

                // convert to string and log
                string pdfResponse = System.Text.Encoding.Default.GetString(pdfResponseBytes);
                _logger.LogInformation("GetOwnerVerificationPdf [FileName: {0}] - Pdf Length: {1}", fileName, pdfResponse.Length);

                _logger.LogInformation("GetOwnerVerificationPdf [FileName: {0}] - Done", fileName);
                return(File(pdfResponseBytes, "application/pdf", fileName));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Example #24
0
        private static async Task DebugExampleMultipleTemplatesAsync()
        {
            var model = new ExampleMultipleTemplatesModel
            {
                PlainText   = "Test multiple template",
                HtmlContent = "<hi>Html content for multiple template</h1>"
            };
            var request = new RenderRequest
            {
                ModelJson    = JsonConvert.SerializeObject(model),
                TemplateType = TemplateType.ExampleMultipleTemplates,
                Culture      = "es-ES"
            };
            var result = await new RazorRendererFunction().Handler(request);

            Console.Write(result);
        }
Example #25
0
        public void Evaluate(int SpreadMax)
        {
            FOut.Stream.IsChanged = false;
            var valid = _input != null;

            if (valid)
            {
                valid = _input.Spread.SliceCount > 0;
            }
            if (valid)
            {
                valid = _input[0] != null;
            }
            if (valid)
            {
                RenderRequest?.Invoke(this, FPluginHost);
                if (!_input.Spread.IsChanged && !_typeChanged && !FFlagChanged[0])
                {
                    return;
                }

                FOut.ResizeAndDismiss(_input.Spread.SliceCount, i => null);
                for (int i = 0; i < _input.Spread.SliceCount; i++)
                {
                    if (FOut[i] == null)
                    {
                        FOut[i] = new VAuxObject {
                            Object = _input[i]
                        }
                    }
                    ;
                    var vaux = (VAuxObject)FOut[i];
                    vaux.Object = _input[i];
                }

                _typeChanged          = false;
                FOut.Stream.IsChanged = FFlagChanged[0];
            }
            else
            {
                FOut.Stream.IsChanged = _prevvalid;
                FOut.SliceCount       = 0;
            }
            _prevvalid = valid;
        }
Example #26
0
        public async Task<ActionResult> Index()
        {

            var gitHubApi = RestService.For<IGitHubApi>("https://api.github.com");

            var request = new RenderRequest
            {
                Text = "Hello **world**, this is sample markdown [with a URL](http://www.somewhere.com)",
                Mode = "markdown"
            };

            var response = await gitHubApi.RenderAsMarkdown(request);

            ViewBag.Markdown = request.Text;
            ViewBag.Html = response;

            return View();
        }
Example #27
0
        /// <summary>
        ///     Spawn a prefab without any Components except visuals. Also prevents calling Awake methods of the prefab.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private static RenderObject SpawnSafe(RenderRequest request)
        {
            GameObject prefab = request.Target;

            // map prefab GameObjects to the instantiated GameObjects
            Dictionary <GameObject, GameObject> realToClone = new Dictionary <GameObject, GameObject>();
            GameObject spawn = SpawnOnlyTransformsClone(prefab, null, realToClone);

            foreach (var pair in realToClone)
            {
                CopyVisualComponents(pair.Key, pair.Value, realToClone);
            }

            spawn.transform.position = Vector3.zero;
            spawn.transform.rotation = request.Rotation;
            spawn.name = prefab.name;

            // calculate visual center
            Vector3 min = new Vector3(1000f, 1000f, 1000f);
            Vector3 max = new Vector3(-1000f, -1000f, -1000f);

            foreach (Renderer meshRenderer in spawn.GetComponentsInChildren <Renderer>())
            {
                min = Vector3.Min(min, meshRenderer.bounds.min);
                max = Vector3.Max(max, meshRenderer.bounds.max);
            }

            // center the prefab
            spawn.transform.position = SpawnPoint - (min + max) / 2f;
            Vector3 size = new Vector3(
                Mathf.Abs(min.x) + Mathf.Abs(max.x),
                Mathf.Abs(min.y) + Mathf.Abs(max.y),
                Mathf.Abs(min.z) + Mathf.Abs(max.z));

            // just in case it doesn't gets deleted properly later
            TimedDestruction timedDestruction = spawn.AddComponent <TimedDestruction>();

            timedDestruction.Trigger(1f);

            return(new RenderObject(spawn, size)
            {
                Request = request
            });
        }
        /// <summary>
        /// Async executes a subtask on node
        /// </summary>
        private async Task <SubTaskResult> ExecuteSubTaskAsync(RenderNode node, RenderSubTask task)
        {
            RenderRequest req = task.GetRenderRequest();

            Image bitmap = null;

            Stopwatch time = new Stopwatch();

            time.Start();
            try
            {
                req.Settings.RenderType = node.RenderType;

                RenderResponse resp = await node.Render(req);


                if (resp == null)
                {
                    return(new SubTaskResult(new Exception("Render fail: (null)")));
                }

                if (resp.Success == false)
                {
                    return(new SubTaskResult(new Exception("Render fail: " + resp.Message)));
                }

                //Update Performance
                node.UpdatePerformance((int)((req.Settings.Height * (req.Settings.Y2 - req.Settings.Y)) * (req.Settings.Width * (req.Settings.X2 - req.Settings.X))),
                                       (int)time.ElapsedMilliseconds);

                using (MemoryStream str = new MemoryStream(resp.Data))
                    bitmap = Bitmap.FromStream(str);
                resp = null;
            }
            finally
            {
                time.Stop();
            }

            return(new SubTaskResult(bitmap));
        }
        public static string SerializeRenderRequest(RenderRequest rr)
        {
            var js = new JsonSerializer()
            {
                ContractResolver           = new CamelCasePropertyNamesContractResolver(),
                NullValueHandling          = NullValueHandling.Ignore,
                ReferenceLoopHandling      = ReferenceLoopHandling.Serialize,
                PreserveReferencesHandling = PreserveReferencesHandling.Objects
            };

            var jo = JObject.FromObject(rr, js);

            jo["overwrites"]?["template"]?.Values().ToList()
            .ForEach((val => jo["template"][val.Path.Replace("overwrites.template.", "")] = val));

            jo["overwrites"]?["options"]?.Values().ToList()
            .ForEach((val => jo["options"][val.Path.Replace("overwrites.options.", "")] = val));

            jo.Children().FirstOrDefault(c => c.Path.Contains("overwrites"))?.Remove();

            return(jo.ToString());
        }
Example #30
0
        public bool EnqueueRender(RenderRequest renderRequest, Action <Sprite> callback)
        {
            if (!renderRequest.Target)
            {
                throw new ArgumentException("Target is required");
            }

            if (callback == null)
            {
                throw new ArgumentException("Callback is required");
            }

            if (!renderRequest.Target.GetComponentsInChildren <Component>(false).Any(IsVisualComponent))
            {
                callback.Invoke(null);
                return(false);
            }

            renderRequest.Callback = callback;
            callback?.Invoke(Render(renderRequest));
            return(true);
        }
        public async Task <Stream> GeneratePdf(
            string bodyTemplate,
            string headerTemplate               = null,
            string footerTemplate               = null,
            object templateData                 = null,
            PageMargins margins                 = null,
            PageFormat format                   = PageFormat.A4,
            PageOrientation orientation         = PageOrientation.Portrait,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            var renderRequest = new RenderRequest
            {
                Template = new Template
                {
                    Engine  = Engine.Handlebars,
                    Recipe  = Recipe.ChromePdf,
                    Content = bodyTemplate,
                    Helpers = _handlebarsHelpers,
                    Chrome  = new Chrome
                    {
                        Landscape           = orientation == PageOrientation.Landscape,
                        Format              = format.ToString(),
                        DisplayHeaderFooter = true,
                        HeaderTemplate      = headerTemplate ?? "&nbsp;",
                        FooterTemplate      = footerTemplate ?? "&nbsp;",
                        MarginTop           = margins?.TopInPx != null ? $"{margins.TopInPx}px" : null,
                        MarginRight         = margins?.RightInPx != null ? $"{margins.RightInPx}px" : null,
                        MarginBottom        = margins?.BottomInPx != null ? $"{margins.BottomInPx}px" : null,
                        MarginLeft          = margins?.LeftInPx != null ? $"{margins.LeftInPx}px" : null,
                        MediaType           = MediaType.Print
                    }
                },
                Data = templateData
            };

            Report report = await _renderService.RenderAsync(renderRequest, cancellationToken);

            return(report.Content);
        }
 public bool Lock(RenderRequest renderRequest)
 {
     IImageProvider provider = null;
     if (pipelineEnd == null || !pipelineEnd.TryGetTarget(out provider))
         return false;
     else
         return provider.Lock(renderRequest);
 }
 public bool Lock(RenderRequest renderRequest)
 {
     IImageProvider provider = null;
     if (pipelineEnd == null || !pipelineEnd.TryGetTarget(out provider))
         throw new InvalidOperationException("No image provider in the pipeline.");
     else
         return provider.Lock(renderRequest);
 }
		public bool Lock(RenderRequest renderRequest)
		{
			return m_imageProvider.Lock(renderRequest);
		}
 bool IImageProvider.Lock(RenderRequest renderRequest)
 {
     return true;
 }