Beispiel #1
0
 /// <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);
         }
     }
 }
Beispiel #2
0
        /// <summary>
        /// Updates a zone's elements.
        /// </summary>
        /// <param name="tenantId">The tenant identifying website that page belongs to.</param>
        /// <param name="pageId">The page that zone belongs to.</param>
        /// <param name="pageZoneId">Identifies zone within page that is being updated.</param>
        /// <param name="pageZoneElements">Updated list of page zone elements.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        public void UpdatePageZoneElements(long tenantId, long pageId, long pageZoneId, List <PageZoneElement> pageZoneElements, IUnitOfWork unitOfWork = null)
        {
            PageZoneElementCollection pageZoneElementCollection = new PageZoneElementCollection();

            foreach (PageZoneElement pageZoneElement in pageZoneElements)
            {
                pageZoneElementCollection.Add(pageZoneElement);
            }
            IUnitOfWork localUnitOfWork = unitOfWork == null?_unitOfWorkFactory.CreateUnitOfWork() : null;

            try
            {
                IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork ?? localUnitOfWork);
                dbm.SetSQL(_sqlManager.GetSql("Sql.UpdatePageZoneElements.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@PageId", FieldType.BigInt, pageId);
                dbm.AddParameter("@PageZoneId", FieldType.BigInt, pageZoneId);
                dbm.AddTypedParameter("@PageZoneElements", FieldType.Structured, pageZoneElementCollection.Count == 0 ? null : pageZoneElementCollection, "cms.PageZoneElementTableType");
                dbm.ExecuteNonQuery();
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Commit();
                }
            }
            catch
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Rollback();
                }
                throw;
            }
            finally
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Dispose();
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Creates multiple page zone elements.
        /// </summary>
        /// <param name="tenantId">Identifies website where page zone elements created.</param>
        /// <param name="pageZoneElements">List of page zone elements to create.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        public void CreatePageZoneElements(long tenantId, List <PageZoneElement> pageZoneElements, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                PageZoneElementCollection pageZoneElementCollection = new PageZoneElementCollection();
                foreach (PageZoneElement pageZoneElement in pageZoneElements)
                {
                    pageZoneElementCollection.Add(pageZoneElement);
                }
                dbm.SetSQL(_sqlManager.GetSql("Sql.CreatePageZoneElements.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddTypedParameter("@PageZoneElements", FieldType.Structured, pageZoneElementCollection.Count == 0 ? null : pageZoneElementCollection, "cms.PageZoneElementTableType");
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }