/// <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); }
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 }); }
// [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); }