internal IBlockDataSource GetBlockDataSource(IBlock block, ILookUpEngine configurationProvider)
        {
            // var log = new Log("DS.CreateV", parentLog, "will create view data source");
            var view       = block.View;
            var showDrafts = block.Context.UserMayEdit;

            Log.Add($"mid#{block.Context.Module.Id}, draft:{showDrafts}, template:{block.View?.Name}");
            // Get ModuleDataSource
            var dsFactory = _dataSourceFactory.Init(Log); // new DataSource(log);
            //var block = builder.Block;
            var initialSource    = dsFactory.GetPublishing(block, showDrafts, configurationProvider);
            var moduleDataSource = dsFactory.GetDataSource <CmsBlock>(initialSource);

            //moduleDataSource.InstanceId = instanceId;

            moduleDataSource.OverrideView = view;
            moduleDataSource.UseSxcInstanceContentGroup = true;

            // If the Template has a Data-Pipeline, use an empty upstream, else use the ModuleDataSource created above
            var viewDataSourceUpstream = view?.Query == null
                ? moduleDataSource
                : null;

            Log.Add($"use pipeline upstream:{viewDataSourceUpstream != null}");

            var viewDataSource = dsFactory.GetDataSource <Block>(block, viewDataSourceUpstream, configurationProvider);

            // Take Publish-Properties from the View-Template
            if (view != null)
            {
                viewDataSource.Publish.Enabled = view.PublishData;
                viewDataSource.Publish.Streams = view.StreamsToPublish;

                Log.Add($"use template, & pipe#{view.Query?.Id}");
                // Append Streams of the Data-Pipeline (this doesn't require a change of the viewDataSource itself)
                if (view.Query != null)
                {
                    Log.Add("Generate query");
                    var query = _queryLazy.Value.Init(block.App.ZoneId, block.App.AppId, view.Query.Entity, configurationProvider, showDrafts, viewDataSource, Log);
                    Log.Add("attaching");
                    viewDataSource.SetOut(query);
                    //viewDataSource.Out = query.Out;
                }
            }
            else
            {
                Log.Add("no template override");
            }

            return(viewDataSource);
        }
        /// <inheritdoc />
        public T CreateSource <T>(IDataSource inSource = null, ILookUpEngine configurationProvider = null) where T : IDataSource
        {
            if (configurationProvider == null)
            {
                configurationProvider = ConfigurationProvider;
            }

            if (inSource != null)
            {
                return(DataSourceFactory.GetDataSource <T>(inSource, inSource, configurationProvider));
            }

            var userMayEdit = (CmsContext as CmsContext)?.Context?.UserMayEdit ?? false;

            var initialSource = DataSourceFactory.GetPublishing(
                App, userMayEdit, ConfigurationProvider as LookUpEngine);

            return(DataSourceFactory.GetDataSource <T>(initialSource, initialSource, configurationProvider));
        }
Exemple #3
0
        /// <inheritdoc />
        public T CreateSource <T>(IDataSource inSource = null, ILookUpEngine configurationProvider = null) where T : IDataSource
        {
            if (configurationProvider == null)
            {
                configurationProvider = ConfigurationProvider;
            }

            if (inSource != null)
            {
                return(DataSourceFactory.GetDataSource <T>(inSource, inSource, configurationProvider));
            }

            var userMayEdit = Block.EditAllowed;

            var initialSource = DataSourceFactory.GetPublishing(
                App, userMayEdit, ConfigurationProvider as LookUpEngine);

            return(DataSourceFactory.GetDataSource <T>(initialSource, initialSource, configurationProvider));
        }
Exemple #4
0
 public IDataSource CreateSource(string typeName = "", IDataSource inSource = null, ILookUpEngine lookUpEngine = null)
 => throw new Exception($"CreateSource(string, ...) {NotSupportedIn10}. Please use CreateSource<DataSourceTypeName>(...) instead.");
Exemple #5
0
 /// <inheritdoc />
 public T CreateSource <T>(IDataSource inSource = null, ILookUpEngine configurationProvider = null)
     where T : IDataSource
 => DynCode.CreateSource <T>(inSource, configurationProvider);
Exemple #6
0
 public IDataSource CreateSource(string typeName = "", IDataSource inSource = null, ILookUpEngine lookUpEngine = null)
 => new DynamicCodeObsolete(DynCode).CreateSource(typeName, inSource, lookUpEngine);
Exemple #7
0
 public T CreateSource <T>(IDataSource inSource = null, ILookUpEngine configurationProvider = null) where T : IDataSource
 {
     throw new NotImplementedException();
 }
Exemple #8
0
 /// <inheritdoc />
 public T CreateSource <T>(IDataSource inSource = null, ILookUpEngine configurationProvider = null)
     where T : IDataSource
 => UnwrappedContents.CreateSource <T>(inSource, configurationProvider);
        public IDataSource CreateSource(string typeName = "", IDataSource inSource = null, ILookUpEngine lookUpEngine = null)
        {
            if (lookUpEngine == null)
            {
                lookUpEngine = DynCode.ConfigurationProvider;
            }

            if (inSource != null)
            {
                return(DynCode.DataSourceFactory.GetDataSource(typeName, inSource, inSource, lookUpEngine));
            }

            var userMayEdit = DynCode.Block?.Context?.UserMayEdit ?? false;

            var initialSource = DynCode.DataSourceFactory.GetPublishing(
                DynCode.App, userMayEdit, DynCode.ConfigurationProvider as LookUpEngine);

            return(typeName != "" ? DynCode.DataSourceFactory.GetDataSource(typeName, initialSource, initialSource, lookUpEngine) : initialSource);
        }
Exemple #10
0
 public TokenReplaceEav(ILookUpEngine lookUpEngine)
     : base(lookUpEngine)
 {
 }
Exemple #11
0
        internal static IBlockDataSource ForContentGroupInSxc(IBlockBuilder blockBuilder, IView view, ILookUpEngine configurationProvider, ILog parentLog, int instanceId = 0)
        {
            var log        = new Log("DS.CreateV", parentLog, "will create view data source");
            var showDrafts = blockBuilder.UserMayEdit;

            log.Add($"mid#{instanceId}, draft:{showDrafts}, template:{view?.Name}");
            // Get ModuleDataSource
            var dsFactory        = new DataSource(log);
            var initialSource    = dsFactory.GetPublishing(blockBuilder.Block, showDrafts, configurationProvider);
            var moduleDataSource = dsFactory.GetDataSource <CmsBlock>(initialSource);

            moduleDataSource.InstanceId = instanceId;

            moduleDataSource.OverrideView = view;
            moduleDataSource.UseSxcInstanceContentGroup = true;

            // If the Template has a Data-Pipeline, use an empty upstream, else use the ModuleDataSource created above
            var viewDataSourceUpstream = view?.Query == null
                ? moduleDataSource
                : null;

            log.Add($"use pipeline upstream:{viewDataSourceUpstream != null}");

            var viewDataSource = dsFactory.GetDataSource <Block>(blockBuilder.Block, viewDataSourceUpstream, configurationProvider);

            // Take Publish-Properties from the View-Template
            if (view != null)
            {
                viewDataSource.Publish.Enabled = view.PublishData;
                viewDataSource.Publish.Streams = view.StreamsToPublish;

                log.Add($"use template, & pipe#{view.Query?.Id}");
                // Append Streams of the Data-Pipeline (this doesn't require a change of the viewDataSource itself)
                if (view.Query != null)
                {
                    log.Add("Generate query");
                    var query = new Query(blockBuilder.App.ZoneId, blockBuilder.App.AppId, view.Query.Entity, configurationProvider, showDrafts, viewDataSource, parentLog);
                    log.Add("attaching");
                    viewDataSource.Out = query.Out;

                    //// build the query and attach it to the view-data-source
                    //new QueryBuilder(parentLog)
                    //    .BuildQuery(view.Query, configurationProvider, /*paramsLookUp*/null , viewDataSource, showDrafts);
                }
            }
            else
            {
                log.Add("no template override");
            }

            return(viewDataSource);
        }
Exemple #12
0
 public TokenReplaceEav(int instanceId, ILookUpEngine lookUpEngine) : base(lookUpEngine)
     => InitAppAndPortalSettings(instanceId /*, lookUpEngine*/);
 /// <summary>
 /// Generate a delegate which will be used to build the configuration based existing stuff
 /// </summary>
 internal static Func <App, IAppDataConfiguration> Build(bool showDrafts, bool publishingEnabled, ILookUpEngine config)
 => appToUse => new AppDataConfiguration(showDrafts, publishingEnabled, config);
Exemple #14
0
 /// <summary>
 /// Generate a delegate which will be used to build the configuration based existing stuff
 /// </summary>
 internal static Func <App, IAppDataConfiguration> Build(bool userMayEdit, bool publishingEnabled, ILookUpEngine config)
 => appToUse => new AppDataConfiguration(userMayEdit, publishingEnabled, config);