/// <summary> /// needed to initialize data - must always happen a bit later because the show-draft info isn't available when creating the first App-object. /// todo: later this should be moved to initialization of this object /// </summary> /// <param name="showDrafts"></param> /// <param name="versioningEnabled"></param> /// <param name="configurationValues">this is needed for providing parameters to the data-query-system</param> internal void InitData(bool showDrafts, bool versioningEnabled, IValueCollectionProvider configurationValues) { Log.Add($"init data drafts:{showDrafts}, vers:{versioningEnabled}, hasConf:{configurationValues != null}"); ConfigurationProvider = configurationValues; ShowDraftsInData = showDrafts; VersioningEnabled = versioningEnabled; }
/// <summary> /// Constructs a new App DataSource /// </summary> public DeferredPipelineQuery(int zoneId, int appId, IEntity queryDef, IValueCollectionProvider config) { ZoneId = zoneId; AppId = appId; QueryDefinition = queryDef; ConfigurationProvider = config; // this one is unusual, so don't pre-attach a default data stream //Out.Add(Constants.DefaultStreamName, new DataStream(this, Constants.DefaultStreamName, GetEntities)); }
/// <summary> /// Assembles a list of all queries / pipelines configured for this app. /// The queries internally are not assembled yet for performance reasons... /// ...but will be auto-assembled the moment they are accessed /// </summary> /// <param name="zoneId"></param> /// <param name="appId"></param> /// <param name="valuesCollectionProvider"></param> /// <returns></returns> public static Dictionary<string, IDataSource> AllPipelines(int zoneId, int appId, IValueCollectionProvider valuesCollectionProvider) { var source = DataSource.GetInitialDataSource(appId: appId); var typeFilter = DataSource.GetDataSource<EntityTypeFilter>(appId: appId, upstream: source); typeFilter.TypeName = Constants.DataPipelineStaticName; var dict = new Dictionary<string, IDataSource>(StringComparer.OrdinalIgnoreCase); foreach (var entQuery in typeFilter.List) { var delayedQuery = new DeferredPipelineQuery(zoneId, appId, entQuery.Value, valuesCollectionProvider); dict.Add(entQuery.Value.Title[0].ToString(), delayedQuery); } return dict; }
/// <summary> /// Create a data-source in code of the expected type /// </summary> /// <typeparam name="T"></typeparam> /// <param name="inSource"></param> /// <param name="configurationProvider"></param> /// <returns></returns> public T CreateSource <T>(IDataSource inSource = null, IValueCollectionProvider configurationProvider = null) { if (configurationProvider == null) { configurationProvider = ConfigurationProvider; } if (inSource != null) { return(DataSource.GetDataSource <T>(inSource.ZoneId, inSource.AppId, inSource, configurationProvider, Log)); } var initialSource = DataSource.GetInitialDataSource(_sxcInstance.Environment.ZoneMapper.GetZoneId(Dnn.Portal.PortalId), App.AppId, _sxcInstance.Environment.Permissions.UserMayEditContent, ConfigurationProvider as ValueCollectionProvider); return(DataSource.GetDataSource <T>(initialSource.ZoneId, initialSource.AppId, initialSource, configurationProvider, Log)); }
public T CreateSource <T>(IDataSource inSource = null, IValueCollectionProvider configurationProvider = null) { if (configurationProvider == null) { configurationProvider = ConfigurationProvider; } if (inSource != null) { return(DataSource.GetDataSource <T>(inSource.ZoneId, inSource.AppId, inSource, configurationProvider)); } var initialSource = DataSource.GetInitialDataSource(ZoneHelpers.GetZoneID(Dnn.Portal.PortalId).Value, App.AppId, _sxcInstance.Environment.Permissions.UserMayEditContent /*SecurityHelpers.HasEditPermission(Dnn.Module)*/); return(DataSource.GetDataSource <T>(initialSource.ZoneId, initialSource.AppId, initialSource, configurationProvider)); }
/// <summary> /// Create a data-source in code of the expected type /// </summary> /// <typeparam name="T"></typeparam> /// <param name="inSource"></param> /// <param name="configurationProvider"></param> /// <returns></returns> public T CreateSource <T>(IDataSource inSource = null, IValueCollectionProvider configurationProvider = null) { if (configurationProvider == null) { configurationProvider = ConfigurationProvider; } if (inSource != null) { return(DataSource.GetDataSource <T>(inSource.ZoneId, inSource.AppId, inSource, configurationProvider, Log)); } var userMayEdit = SxcInstance.UserMayEdit; var initialSource = DataSource.GetInitialDataSource(SxcInstance.Environment.ZoneMapper.GetZoneId(_tenant.Id), App.AppId, userMayEdit, ConfigurationProvider as ValueCollectionProvider); return(DataSource.GetDataSource <T>(initialSource.ZoneId, initialSource.AppId, initialSource, configurationProvider, Log)); }
public void InitAppAndPortalSettings(App app, int moduleId, PortalSettings portalSettings, IValueCollectionProvider provider) { foreach (var valueProvider in provider.Sources) ValueSources.Add(valueProvider.Key, valueProvider.Value); //// only add these in running inside an http-context. Otherwise leave them away! //if (HttpContext.Current != null) //{ // var request = HttpContext.Current.Request; // ValueSources.Add("querystring", new FilteredNameValueCollectionPropertyAccess(request.QueryString)); // ValueSources.Add("server", new FilteredNameValueCollectionPropertyAccess(request.ServerVariables)); // ValueSources.Add("form", new FilteredNameValueCollectionPropertyAccess(request.Form)); //} //ValueSources.Add("app", new AppPropertyAccess("app", app)); ////if (app.Settings != null) //// ValueSources.Add("appsettings", new DynamicEntityPropertyAccess("appsettings", app.Settings)); ////if (app.Resources != null) //// ValueSources.Add("appresources", new DynamicEntityPropertyAccess("appresources", app.Resources)); ModuleId = moduleId; PortalSettings = portalSettings; }
/// <summary> /// needed to initialize data - must always happen a bit later because the show-draft info isn't available when creating the first App-object. /// todo: later this should be moved to initialization of this object /// </summary> /// <param name="showDrafts"></param> /// <param name="configurationValues">this is needed for providing parameters to the data-query-system</param> internal void InitData(bool showDrafts, IValueCollectionProvider configurationValues) { ConfigurationProvider = configurationValues; ShowDraftsInData = showDrafts; }
public T CreateSource <T>(IDataSource inSource = null, IValueCollectionProvider configurationProvider = null) => AppAndDataHelpers.CreateSource <T>(inSource, configurationProvider);
public IDataSource CreateSource(string typeName = "", IDataSource inSource = null, IValueCollectionProvider configurationProvider = null) => AppAndDataHelpers.CreateSource(typeName, inSource, configurationProvider);
/// <summary> /// Generate a delegate which will be used to build the configuration based existing stuff /// </summary> internal static Func <Eav.Apps.App, IAppDataConfiguration> Build(bool userMayEdit, bool publishEnabled, IValueCollectionProvider config) => appToUse => new AppDataConfiguration(userMayEdit, publishEnabled, config);
//public PortalSettings PortalSettings; public TokenReplaceEav(App app, int instanceId, /*PortalSettings portalSettings,*/ IValueCollectionProvider provider) { InitAppAndPortalSettings(app, instanceId, /*portalSettings,*/ provider); }
public TokenReplaceEav(App app, int moduleId, PortalSettings portalSettings, IValueCollectionProvider provider) : base() { InitAppAndPortalSettings(app, moduleId, portalSettings, provider); }
public IDataSource CreateSource(string typeName = "", IDataSource inSource = null, IValueCollectionProvider configurationProvider = null) { if (configurationProvider == null) { configurationProvider = ConfigurationProvider; } if (inSource != null) { return(DataSource.GetDataSource(typeName, inSource.ZoneId, inSource.AppId, inSource, configurationProvider)); } var initialSource = DataSource.GetInitialDataSource(_sxcInstance.Environment.ZoneMapper.GetZoneId(Dnn.Portal.PortalId) /* ZoneHelpers.GetZoneId(Dnn.Portal.PortalId).Value*/, App.AppId, _sxcInstance.Environment.Permissions.UserMayEditContent, ConfigurationProvider as ValueCollectionProvider); return(typeName != "" ? DataSource.GetDataSource(typeName, initialSource.ZoneId, initialSource.AppId, initialSource, configurationProvider) : initialSource); }
internal static ViewDataSource ForContentGroupInSxc(SxcInstance sxc, Template overrideTemplate, IValueCollectionProvider configurationProvider, Log parentLog, int instanceId = 0) { var log = new Log("DS.CreateV", parentLog, "will create view data source"); var showDrafts = sxc.UserMayEdit;// Factory.Resolve<IPermissions>().UserMayEditContent(sxc.InstanceInfo); log.Add($"mid#{instanceId}, draft:{showDrafts}, template:{overrideTemplate?.Name}"); // Get ModuleDataSource var initialSource = DataSource.GetInitialDataSource(sxc.ZoneId, sxc.AppId, showDrafts, configurationProvider, parentLog); var moduleDataSource = DataSource.GetDataSource <ModuleDataSource>(sxc.ZoneId, sxc.AppId, initialSource, configurationProvider, parentLog); moduleDataSource.InstanceId = instanceId; moduleDataSource.OverrideTemplate = overrideTemplate; // new moduleDataSource.UseSxcInstanceContentGroup = true; // new // If the Template has a Data-Pipeline, use an empty upstream, else use the ModuleDataSource created above var viewDataSourceUpstream = overrideTemplate?.Query == null ? moduleDataSource : null; log.Add($"use pipeline upstream:{viewDataSourceUpstream != null}"); var viewDataSource = DataSource.GetDataSource <ViewDataSource>(sxc.ZoneId, sxc.AppId, viewDataSourceUpstream, configurationProvider, parentLog); // Take Publish-Properties from the View-Template if (overrideTemplate != null) { viewDataSource.Publish.Enabled = overrideTemplate.PublishData; viewDataSource.Publish.Streams = overrideTemplate.StreamsToPublish; log.Add($"override template, & pipe#{overrideTemplate.Query?.EntityId}"); // Append Streams of the Data-Pipeline (this doesn't require a change of the viewDataSource itself) if (overrideTemplate.Query != null) { new QueryFactory(parentLog).GetAsDataSource(sxc.AppId ?? -999, overrideTemplate.Query, configurationProvider, viewDataSource, showDrafts: showDrafts); } } else { log.Add("no template override"); } return(viewDataSource); }
/// <summary> /// needed to initialize data - must always happen a bit later because the show-draft info isn't available when creating the first App-object. /// todo: later this should be moved to initialization of this object /// </summary> /// <param name="showDrafts"></param> internal void InitData(bool showDrafts, IValueCollectionProvider configurationValues) { ConfigurationProvider = configurationValues; // ToDo: Remove this as soon as App.Data getter on App class is fixed #1 and #2 if (_data == null) { // ModulePermissionController does not work when indexing, return false for search var initialSource = SexyContent.GetInitialDataSource(ZoneId, AppId, showDrafts); // todo: probably use th efull configuration provider from function params, not from initial source? _data = DataSource.GetDataSource<DataSources.App>(initialSource.ZoneId, initialSource.AppId, initialSource, initialSource.ConfigurationProvider); var defaultLanguage = ""; var languagesActive = SexyContent.GetCulturesWithActiveState(OwnerPS.PortalId, ZoneId).Any(c => c.Active); if (languagesActive) defaultLanguage = OwnerPS.DefaultLanguage; Data.DefaultLanguage = defaultLanguage; Data.CurrentUserName = OwnerPS.UserInfo.Username; } }
public void InitAppAndPortalSettings(App app, int moduleId, /*PortalSettings portalSettings,*/ IValueCollectionProvider provider) { foreach (var valueProvider in provider.Sources) { ValueSources.Add(valueProvider.Key, valueProvider.Value); } ModuleId = moduleId; //PortalSettings = portalSettings; }
public void InitAppAndPortalSettings(App app, int moduleId, PortalSettings portalSettings, IValueCollectionProvider provider) { foreach (var valueProvider in provider.Sources) { ValueSources.Add(valueProvider.Key, valueProvider.Value); } //// only add these in running inside an http-context. Otherwise leave them away! //if (HttpContext.Current != null) //{ // var request = HttpContext.Current.Request; // ValueSources.Add("querystring", new FilteredNameValueCollectionPropertyAccess(request.QueryString)); // ValueSources.Add("server", new FilteredNameValueCollectionPropertyAccess(request.ServerVariables)); // ValueSources.Add("form", new FilteredNameValueCollectionPropertyAccess(request.Form)); //} //ValueSources.Add("app", new AppPropertyAccess("app", app)); ////if (app.Settings != null) //// ValueSources.Add("appsettings", new DynamicEntityPropertyAccess("appsettings", app.Settings)); ////if (app.Resources != null) //// ValueSources.Add("appresources", new DynamicEntityPropertyAccess("appresources", app.Resources)); ModuleId = moduleId; PortalSettings = portalSettings; }