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;
     }
 }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 5
0
        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;
        }