/// <summary> /// Constructs page zone and page zone element collections for calls to stored procedures that contain user defined table types. /// </summary> /// <param name="page">Contains page information used to populate collections.</param> /// <param name="pageZoneCollection">Page zone collection.</param> /// <param name="pageZoneElementCollection">Page zone element collection.</param> private void GetPageCollections(Page page, out PageZoneCollection pageZoneCollection, out PageZoneElementCollection pageZoneElementCollection) { pageZoneCollection = new PageZoneCollection(); pageZoneElementCollection = new PageZoneElementCollection(); foreach (PageZone pageZone in page.PageZones) { pageZoneCollection.Add(pageZone); foreach (PageZoneElement pageZoneElement in pageZone.PageZoneElements) { pageZoneElementCollection.Add(pageZoneElement); } } }
/// <summary> /// Creates multiple page zones. /// </summary> /// <param name="tenantId">Identifies website where page zones created.</param> /// <param name="pageZones">List of page zones to create.</param> /// <param name="unitOfWork">Unit of work.</param> public void CreatePageZones(long tenantId, List <PageZone> pageZones, IUnitOfWork unitOfWork = null) { IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork); try { PageZoneCollection pageZoneCollection = new PageZoneCollection(); foreach (PageZone pageZone in pageZones) { pageZoneCollection.Add(pageZone); } dbm.SetSQL(_sqlManager.GetSql("Sql.CreatePageZones.sql")); dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId); dbm.AddTypedParameter("@PageZones", FieldType.Structured, pageZoneCollection.Count == 0 ? null : pageZoneCollection, "cms.PageZoneTableType"); dbm.ExecuteNonQuery(); } finally { if (unitOfWork == null) { dbm.Dispose(); } } }