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