/// <summary> /// Gets master page zone element type from database manager data reader. /// </summary> /// <param name="dbm">Database manager.</param> /// <returns>A populated master page zone element type object.</returns> private MasterPageZoneElementType GetMasterPageZoneElementTypeFromDatabaseManager(IDatabaseManager dbm) { ElementType elementType = new ElementType { ElementTypeId = (Guid)dbm.DataReaderValue("ElementTypeId"), Name = (string)dbm.DataReaderValue("Name") }; MasterPageZoneElementType masterPageZoneElementType = new MasterPageZoneElementType { TenantId = (long)dbm.DataReaderValue("TenantId"), MasterPageId = (long)dbm.DataReaderValue("MasterPageId"), MasterPageZoneId = (long)dbm.DataReaderValue("MasterPageZoneId"), ElementTypeId = elementType.ElementTypeId, ElementType = elementType }; return(masterPageZoneElementType); }
/// <summary> /// Gets master page from database manager result. /// </summary> /// <param name="dbm">Database manager.</param> /// <param name="loadZonesAndElements">Indicates depth of data loaded.</param> /// <returns>Master page (or null if master page not found).</returns> private MasterPage GetMasterPage(IDatabaseManager dbm, bool loadZonesAndElements) { // Get master page if (loadZonesAndElements && !dbm.Read()) { return(null); } MasterPage masterPage = GetMasterPageFromDatabaseManager(dbm); // If not read, we can return result now if (!loadZonesAndElements) { return(masterPage); } // Get master page zones dbm.Read(); Dictionary <long, MasterPageZone> masterPageZonesById = new Dictionary <long, MasterPageZone>(); while (dbm.Read()) { MasterPageZone masterPageZone = GetMasterPageZoneFromDatabaseManager(dbm); masterPage.MasterPageZones.Add(masterPageZone); masterPageZonesById.Add(masterPageZone.MasterPageZoneId, masterPageZone); } // Get the element types that can exist in a master page zone when admin type is configurable while (dbm.Read()) { MasterPageZoneElementType masterPageZoneElementType = GetMasterPageZoneElementTypeFromDatabaseManager(dbm); masterPageZonesById[masterPageZoneElementType.MasterPageZoneId].MasterPageZoneElementTypes.Add(masterPageZoneElementType); } // Get master page zone elements while (dbm.Read()) { MasterPageZoneElement masterPageZoneElement = GetMasterPageZoneElementFromDatabaseManager(dbm); masterPageZonesById[masterPageZoneElement.MasterPageZoneId].MasterPageZoneElements.Add(masterPageZoneElement); } // Return the result return(masterPage); }