Esempio n. 1
0
        /// <inheritdoc/>
        protected override void SetResult(RenderJsonRenderingArgs args)
        {
            Assert.ArgumentNotNull(args, nameof(args));
            Assert.IsNotNull(args.Result, "args.Result should not be null");

            var rendering = new RenderedJsonRendering(args.Result);

            if (rendering.RenderingParams == null)
            {
                return;
            }

            if (!rendering.RenderingParams.Keys.Any(o => o.StartsWith(GridParamsKey)))
            {
                return;
            }

            var db = args.Rendering?.Item?.Database;

            if (db == null)
            {
                return;
            }

            for (int i = 1; i < 9; i++)
            {
                if (!rendering.RenderingParams.ContainsKey(GridParamsKey + i))
                {
                    break;
                }

                var gridParameters = rendering.RenderingParams[GridParamsKey + i];
                var cssClasses     = new List <string>();
                foreach (var id in Sitecore.MainUtil.Split(gridParameters, "|"))
                {
                    var item = db.GetItem(id);
                    if (item == null)
                    {
                        continue;
                    }

                    var css = item[GridCssKey];
                    if (!string.IsNullOrWhiteSpace(css))
                    {
                        cssClasses.Add(css);
                    }
                }

                if (cssClasses.Any())
                {
                    rendering.RenderingParams[GridParamsKey + i] = string.Join(" ", cssClasses);
                }
            }

            args.Result = rendering;
        }
        /// <inheritdoc/>
        protected override IList <RenderedPlaceholder> GetRenderedPlaceholders(RenderJsonRenderingArgs args)
        {
            var placeholders = base.GetRenderedPlaceholders(args);

            if (args.Rendering.Parameters != null && args.Rendering.Parameters.Contains(SXAPlaceholdersFieldName))
            {
                return(this.SplitPlaceholders(placeholders));
            }

            return(placeholders);
        }
Esempio n. 3
0
        protected override RenderedJsonRendering CreateResultInstance(RenderJsonRenderingArgs args)
        {
            _renderingConfiguration = args.RenderingConfiguration;

            //Note: the constructor below is different for Sitecore 9.x and 10. The below will only work in Headless Services for Sitecore 10.
            return(new RenderedJsonRendering()
            {
                Name = args.Rendering.RenderingItem.Name,
                DataSource = args.Rendering.DataSource,
                RenderingParams = SerializeRenderingParams(args.Rendering),
                Uid = args.Rendering.UniqueId
            });
        }
Esempio n. 4
0
        // [Fact]
        public void FormatRenderingParameters_Parameters_ProcessedLowerCaseParameterKeys()
        {
            var configuration          = Substitute.For <IConfiguration>();
            var renderingConfiguration = Substitute.For <IRenderingConfiguration>();

            var renderingItem = new DbItem("renderingItem");

            using (var db = new Db
            {
                renderingItem
            })
            {
                var args = new RenderJsonRenderingArgs
                {
                    RenderingConfiguration = renderingConfiguration,
                    Rendering = new Rendering
                    {
                        RenderingItem = db.GetItem(renderingItem.ID)
                    },
                    Result = new RenderedJsonRendering
                    {
                        RenderingParams = new Dictionary <string, string>
                        {
                            {
                                "Param1", "Value1"
                            },
                            {
                                "Param 2", "Value 2"
                            },
                            {
                                "notChanged", "1"
                            }
                        }
                    }
                };

                var likesContextExtension = new FormatRenderingParams(configuration);
                likesContextExtension.Process(args);

                Assert.NotNull(args.Result);

                var renderingParams = args.Result.RenderingParams;
                Assert.NotNull(renderingParams);

                Assert.Equal(3, renderingParams.Count);
                Assert.Contains(renderingParams, x => (x.Key == "param1") && (x.Value == "Value1"));
                Assert.Contains(renderingParams, x => (x.Key == "param2") && (x.Value == "Value 2"));
                Assert.Contains(renderingParams, x => (x.Key == "notChanged") && (x.Value == "1"));
            }
        }
        protected override void SetResult(RenderJsonRenderingArgs args)
        {
            if (args == null)
            {
                throw new ArgumentNullException(nameof(args));
            }
            if (args.RenderingConfiguration == null)
            {
                throw new ArgumentNullException(nameof(args.RenderingConfiguration));
            }

            if (!(args.Result is RenderedJsonRendering jssRenderedJsonRendering))
            {
                return;
            }
            args.Result = new ExtensibleRenderedJsonRendering(jssRenderedJsonRendering, args.RenderingConfiguration.Name, args.Rendering);
        }
 protected override void SetResult(RenderJsonRenderingArgs args)
 {
     Assert.ArgumentNotNull(args, nameof(args));
     Assert.IsNotNull(args.Result, "args.Result cannot be null");
     args.Result.RenderingParams = this.FormatRenderingParameters(args.Result.RenderingParams);
 }