/// <summary> /// Add new Content Types for Pipeline Designer /// </summary> /// <remarks>Some Content Types are defined in EAV but some only in 2sxc. EAV.VersionUpgrade ensures Content Types are shared across all Apps.</remarks> private static void EnsurePipelineDesignerAttributeSets() { // Ensure DnnSqlDataSource Configuration var dsrcSqlDataSource = Eav.Import.AttributeSet.SystemAttributeSet("|Config ToSic.SexyContent.DataSources.DnnSqlDataSource", "used to configure a DNN SqlDataSource", new List <Eav.Import.Attribute> { Eav.Import.Attribute.StringAttribute("ContentType", "ContentType", null, true), Eav.Import.Attribute.StringAttribute("SelectCommand", "SelectCommand", null, true, rowCount: 10) }); // Collect AttributeSets for use in Import var attributeSets = new List <Eav.Import.AttributeSet> { dsrcSqlDataSource }; var import = new Eav.Import.Import(DataSource.DefaultZoneId, DataSource.MetaDataAppId, SexyContent.InternalUserName); import.RunImport(attributeSets, null); var metaDataCtx = EavContext.Instance(DataSource.DefaultZoneId, DataSource.MetaDataAppId); metaDataCtx.GetAttributeSet(dsrcSqlDataSource.StaticName).AlwaysShareConfiguration = true; metaDataCtx.SaveChanges(); // Run EAV Version Upgrade (also ensures Content Type sharing) var eavVersionUpgrade = new VersionUpgrade(SexyContent.InternalUserName); eavVersionUpgrade.EnsurePipelineDesignerAttributeSets(); }
/// <summary> /// Create a simple data controller to create, update and delete entities. /// </summary> /// <param name="zoneId">Zone ID</param> /// <param name="appId">App ID</param> /// <param name="userName">Name of user loged in</param> /// <param name="defaultLanguageCode">Default language of system</param> public SimpleDataController(int zoneId, int appId, string userName, string defaultLanguageCode) { this._zoneId = zoneId; this._appId = appId; this._userName = userName; this._defaultLanguageCode = defaultLanguageCode; this._contentContext = EavContext.Instance(zoneId, appId); }