protected override Item ResolveCompositeDatasource(string datasource, Item contextItem) { ID datasourceId; if (ID.TryParse(datasource, out datasourceId)) { var datasourceItem = Context.Database.GetItem(datasourceId); if (datasourceItem.TemplateID == Templates.RulesBasedSnippetSnippet.ID) { var rulesBasedDatasource = rulesBasedSnippetRepository.GetRulesBasedSnippetDataSource(datasourceItem, contextItem); return(rulesBasedDatasource ?? datasourceItem); } else { return(datasourceItem); } } ResolveRenderingDatasourceArgs renderingDatasourceArgs = new ResolveRenderingDatasourceArgs(datasource); if (contextItem != null) { renderingDatasourceArgs.CustomData.Add(nameof(contextItem), contextItem); } CorePipeline.Run("resolveRenderingDatasource", renderingDatasourceArgs); return(Context.Database.GetItem(renderingDatasourceArgs.Datasource)); }
public void Process(ResolveRenderingDatasourceArgs args) { Assert.IsNotNull(args, "args"); string source = args.Datasource; if (IsScripted(source)) { IEnumerable<Item> items = RunEnumeration(source, Context.Item); args.Datasource = items.First().Paths.Path; } }
public void Process(ResolveRenderingDatasourceArgs args) { Assert.IsNotNull(args, "args"); var source = args.Datasource; if (IsScripted(source)) { var items = RunEnumeration(source, Context.Item); args.Datasource = items.First().Paths.Path; } }
public void Process(ResolveRenderingDatasourceArgs args) { Assert.IsNotNull(args, "args"); var source = args.Datasource; if (IsScripted(source)) { var items = RunEnumeration(source, Context.Item); args.Datasource = items.Select(item => item.ID.ToString()).Aggregate((current, next) => current + "|" + next); } }
public void Process(RenderRenderingArgs args) { Assert.IsNotNull(args, "args"); if (args.Rendering.DataSource.IsNullOrEmpty()) { return; } if (!IsScripted(args.Rendering.DataSource)) { return; } var renderingDatasourceArgs = new ResolveRenderingDatasourceArgs(args.Rendering.DataSource); CorePipeline.Run("resolveRenderingDatasource", renderingDatasourceArgs); args.Rendering.DataSource = renderingDatasourceArgs.Datasource; }