/// <summary> /// Add master page SQL parameters. /// </summary> /// <param name="masterPage">Master page.</param> /// <param name="dbm">The database manager where parameters are added.</param> private void AddMasterPageParameters(MasterPage masterPage, IDatabaseManager dbm) { MasterPageZoneCollection masterPageZoneCollection = new MasterPageZoneCollection(); MasterPageZoneElementTypeCollection masterPageZoneElementTypeCollection = new MasterPageZoneElementTypeCollection(); MasterPageZoneElementCollection masterPageZoneElementCollection = new MasterPageZoneElementCollection(); PopulateMasterPageCollections(masterPage, masterPageZoneCollection, masterPageZoneElementTypeCollection, masterPageZoneElementCollection); AddMasterPageDetailsParameters(masterPage, dbm); dbm.AddTypedParameter("@MasterPageZones", FieldType.Structured, masterPageZoneCollection.Count == 0 ? null : masterPageZoneCollection, "cms.MasterPageZoneTableType"); dbm.AddTypedParameter("@MasterPageZoneElementTypes", FieldType.Structured, masterPageZoneElementTypeCollection.Count == 0 ? null : masterPageZoneElementTypeCollection, "cms.MasterPageZoneElementTypeTableType"); dbm.AddTypedParameter("@MasterPageZoneElements", FieldType.Structured, masterPageZoneElementCollection.Count == 0 ? null : masterPageZoneElementCollection, "cms.MasterPageZoneElementTableType"); }
/// <summary> /// Adds master page zone SQL parameters. /// </summary> /// <param name="masterPageZone">Master page zone.</param> /// <param name="dbm">The database manager where parameters are added.</param> private void AddMasterPageZoneParameters(MasterPageZone masterPageZone, IDatabaseManager dbm) { MasterPageZoneElementTypeCollection masterPageZoneElementTypeCollection = new MasterPageZoneElementTypeCollection(); MasterPageZoneElementCollection masterPageZoneElementCollection = new MasterPageZoneElementCollection(); PopulateMasterPageZoneCollections(masterPageZone, masterPageZoneElementTypeCollection, masterPageZoneElementCollection); dbm.AddParameter("@Name", FieldType.NVarChar, MasterPageLengths.ZoneNameMaxLength, masterPageZone.Name); dbm.AddParameter("@SortOrder", FieldType.Int, masterPageZone.SortOrder); dbm.AddParameter("@AdminType", FieldType.Int, (int)masterPageZone.AdminType); dbm.AddParameter("@ContentType", FieldType.Int, (int)masterPageZone.ContentType); dbm.AddParameter("@BeginRender", FieldType.NVarChar, -1, masterPageZone.BeginRender ?? (object)DBNull.Value); dbm.AddParameter("@EndRender", FieldType.NVarChar, -1, masterPageZone.EndRender ?? (object)DBNull.Value); dbm.AddTypedParameter("@MasterPageZoneElementTypes", FieldType.Structured, masterPageZoneElementTypeCollection.Count == 0 ? null : masterPageZoneElementTypeCollection, "cms.MasterPageZoneElementTypeTableType"); dbm.AddTypedParameter("@MasterPageZoneElements", FieldType.Structured, masterPageZoneElementCollection.Count == 0 ? null : masterPageZoneElementCollection, "cms.MasterPageZoneElementTableType"); }
/// <summary> /// Get zone, zone element and zone element type collections for table types. /// </summary> /// <param name="masterPage">Master page.</param> /// <param name="masterPageZoneCollection">Master page zone collection.</param> /// <param name="masterPageZoneElementTypeCollection">Master page zone element type collection.</param> /// <param name="masterPageZoneElementCollection">Master page zone element collection.</param> private void PopulateMasterPageCollections(MasterPage masterPage, MasterPageZoneCollection masterPageZoneCollection, MasterPageZoneElementTypeCollection masterPageZoneElementTypeCollection, MasterPageZoneElementCollection masterPageZoneElementCollection) { foreach (MasterPageZone masterPageZone in masterPage.MasterPageZones) { masterPageZoneCollection.Add(masterPageZone); PopulateMasterPageZoneCollections(masterPageZone, masterPageZoneElementTypeCollection, masterPageZoneElementCollection); } }
/// <summary> /// Populates zone element and zone element type collections for table types. /// </summary> /// <param name="masterPageZone">Master page zone.</param> /// <param name="masterPageZoneElementTypeCollection">Master page zone element type collection.</param> /// <param name="masterPageZoneElementCollection">Master page zone element collection.</param> private void PopulateMasterPageZoneCollections(MasterPageZone masterPageZone, MasterPageZoneElementTypeCollection masterPageZoneElementTypeCollection, MasterPageZoneElementCollection masterPageZoneElementCollection) { foreach (MasterPageZoneElementType masterPageZoneElementType in masterPageZone.MasterPageZoneElementTypes) { masterPageZoneElementType.MasterPageZoneSortOrder = masterPageZone.SortOrder; masterPageZoneElementTypeCollection.Add(masterPageZoneElementType); } foreach (MasterPageZoneElement masterPageZoneElement in masterPageZone.MasterPageZoneElements) { masterPageZoneElement.MasterPageZoneSortOrder = masterPageZone.SortOrder; masterPageZoneElementCollection.Add(masterPageZoneElement); } }