示例#1
0
        /// <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);
 }