public void Update(FooterSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.UpdateFooter.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@Message", FieldType.NVarChar, -1, settings.Message ?? (object)DBNull.Value);
                dbm.AddParameter("@ShowLoggedOnUserOptions", FieldType.Bit, settings.ShowLoggedOnUserOptions);
                dbm.AddParameter("@ShowLoggedOffUserOptions", FieldType.Bit, settings.ShowLoggedOffUserOptions);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
        public void Create(FormSettings settings, IUnitOfWork unitOfWork = null)
        {
            FormFieldCollection formFieldCollection = GetFormFieldCollection(settings);
            IUnitOfWork         localUnitOfWork     = unitOfWork == null?_unitOfWorkFactory.CreateUnitOfWork() : null;

            try
            {
                IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork ?? localUnitOfWork);
                dbm.SetSQL(_sqlManager.GetSql("Sql.CreateForm.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@RecipientEmail", FieldType.NVarChar, -1, settings.RecipientEmail);
                dbm.AddParameter("@SubmitButtonLabel", FieldType.NVarChar, 100, settings.SubmitButtonLabel);
                dbm.AddParameter("@SubmittedMessage", FieldType.NVarChar, -1, settings.SubmittedMessage);
                dbm.AddTypedParameter("@FormFields", FieldType.Structured, formFieldCollection.Count == 0 ? null : formFieldCollection, "element.FormFieldTableType");
                dbm.ExecuteNonQuery();
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Commit();
                }
            }
            catch
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Rollback();
                }
                throw;
            }
            finally
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Dispose();
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Creates a new image.
        /// </summary>
        /// <param name="image">New image details.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Newly allocated upload identifier.</returns>
        public long CreateImage(Image image, IUnitOfWork unitOfWork = null)
        {
            IUnitOfWork localUnitOfWork = unitOfWork == null?_unitOfWorkFactory.CreateUnitOfWork() : null;

            try
            {
                IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork ?? localUnitOfWork);
                dbm.SetStoredProcedure("cms.CreateImage");
                dbm.AddParameter("@TenantId", FieldType.BigInt, image.TenantId);
                dbm.AddParameter("@UploadType", FieldType.Int, (int)image.UploadType);
                dbm.AddParameter("@Name", FieldType.NVarChar, -1, image.Name);
                dbm.AddParameter("@Size", FieldType.Int, image.Size);
                dbm.AddParameter("@Committed", FieldType.Bit, image.Committed);
                dbm.AddParameter("@Created", FieldType.DateTime, image.Created);
                dbm.AddParameter("@Updated", FieldType.DateTime, image.Updated);
                dbm.AddParameter("@Width", FieldType.Int, image.Width);
                dbm.AddParameter("@Height", FieldType.Int, image.Height);
                dbm.AddOutputParameter("@UploadId", FieldType.BigInt);
                Dictionary <string, object> outputValues = new Dictionary <string, object>();
                dbm.ExecuteNonQuery(outputValues);
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Commit();
                }
                return((long)outputValues["@UploadId"]);
            }
            catch
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Rollback();
                }
                throw;
            }
            finally
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Dispose();
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// Creates a testimonial element.
        /// </summary>
        /// <param name="settings">New element settings.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        public void Create(TestimonialSettings settings, IUnitOfWork unitOfWork = null)
        {
            TestimonialCommentCollection testimonialCommentCollection = GetTestimonialCommentCollection(settings);
            IUnitOfWork localUnitOfWork = unitOfWork == null?_unitOfWorkFactory.CreateUnitOfWork() : null;

            try
            {
                IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork ?? localUnitOfWork);
                dbm.SetSQL(_sqlManager.GetSql("Sql.CreateTestimonial.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@DisplayName", FieldType.NVarChar, 256, settings.DisplayName);
                dbm.AddParameter("@Preamble", FieldType.NVarChar, -1, settings.Preamble);
                dbm.AddTypedParameter("@TestimonialComments", FieldType.Structured, testimonialCommentCollection.Count == 0 ? null : testimonialCommentCollection, "element.TestimonialCommentTableType");
                dbm.ExecuteNonQuery();
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Commit();
                }
            }
            catch
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Rollback();
                }
                throw;
            }
            finally
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Dispose();
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// Get template details.
        /// </summary>
        /// <param name="tenantId">Unique template identifier.</param>
        /// <param name="loadAll">Set true to load entire template rather than just top level template details.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Template details (or null if template not found).</returns>
        public Template Read(long tenantId, bool loadAll, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetSQL(_sqlManager.GetSql("Sql.ReadTemplate.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@LoadAll", FieldType.Bit, loadAll);
                dbm.ExecuteReader();
                if (dbm.Read())
                {
                    return(GetTemplate(dbm, loadAll));
                }
                return(null);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #6
0
        public void Update(HtmlSettings settings, IUnitOfWork unitOfWork = null)
        {
            HtmlUploadCollection htmlUploadCollection = GetHtmlUploadCollection(settings);
            IUnitOfWork          localUnitOfWork      = unitOfWork == null?_unitOfWorkFactory.CreateUnitOfWork() : null;

            try
            {
                IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork ?? localUnitOfWork);
                string           sql = _sqlManager.GetSql("Sql.UpdateHtml.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@Html", FieldType.NVarChar, -1, settings.Html);
                dbm.AddTypedParameter("@HtmlUploads", FieldType.Structured, htmlUploadCollection.Count == 0 ? null : htmlUploadCollection, "element.HtmlUploadTableType");
                dbm.ExecuteNonQuery();
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Commit();
                }
            }
            catch
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Rollback();
                }
                throw;
            }
            finally
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Dispose();
                }
            }
        }
        /// <summary>
        /// Reads a table element.
        /// </summary>
        /// <param name="settings">Table settings.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        public void Read(TableSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetSQL(_sqlManager.GetSql("Sql.ReadTable.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.ExecuteReader();
                dbm.Read();
                settings.DisplayName = (string)dbm.DataReaderValue("DisplayName");
                settings.Preamble    = (string)dbm.DataReaderValue("Preamble");
                settings.ShowHeaders = (bool)dbm.DataReaderValue("ShowHeaders");
                settings.Rows        = (string)dbm.DataReaderValue("Rows");
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #8
0
        public ForumThreads ListThreads(long tenantId, long elementId, int pageIndex, int pageSize, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.ListForumThreads.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, elementId);
                dbm.AddParameter("@PageIndex", FieldType.Int, pageIndex);
                dbm.AddParameter("@PageSize", FieldType.Int, pageSize);
                dbm.ExecuteReader();
                ForumThreads threads = new ForumThreads();
                while (dbm.Read())
                {
                    threads.Add(new ForumThreadExtended
                    {
                        Thread         = GetThread(dbm),
                        User           = GetUser(dbm),
                        LastPostUserId = dbm.DataReaderValue("LastPostUserId") == DBNull.Value ? null : (long?)dbm.DataReaderValue("LastPostUserId"),
                        LastPostUser   = dbm.DataReaderValue("LastPostAlias") == DBNull.Value ? null : GetUser(dbm, "LastPost")
                    });
                }
                dbm.Read();
                threads.Total = (int)dbm.DataReaderValue("ThreadCount");
                return(threads);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #9
0
        public ForumThreads ListLatestThreads(long tenantId, long?pageId, int pageSize, bool recursive, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                int          pageIndex = 0;
                ForumThreads threads   = new ForumThreads();
                string       sql       = _sqlManager.GetSql(recursive ? "Sql.ListLatestThreadsRecursive.sql" : "Sql.ListLatestThreads.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@PageId", FieldType.BigInt, pageId ?? (object)DBNull.Value);
                dbm.AddParameter("@PageIndex", FieldType.Int, pageIndex);
                dbm.AddParameter("@PageSize", FieldType.Int, pageSize);
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    threads.Add(new ForumThreadExtended
                    {
                        Thread         = GetThread(dbm),
                        User           = GetUser(dbm),
                        LastPostUserId = dbm.DataReaderValue("LastPostUserId") == DBNull.Value ? null : (long?)dbm.DataReaderValue("LastPostUserId"),
                        LastPostUser   = dbm.DataReaderValue("LastPostAlias") == DBNull.Value ? null : GetUser(dbm, "LastPost"),
                        PageId         = (long)dbm.DataReaderValue("PageId")
                    });
                }
                return(threads);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #10
0
        public void Read(MapSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.ReadMap.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.ExecuteReader();
                dbm.Read();
                settings.DisplayName = dbm.DataReaderValue("DisplayName") == DBNull.Value ? null : (string)dbm.DataReaderValue("DisplayName");
                settings.Latitude    = (double)dbm.DataReaderValue("Latitude");
                settings.Longitude   = (double)dbm.DataReaderValue("Longitude");
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
        public void Read(FooterSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.ReadFooter.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.ExecuteReader();
                dbm.Read();
                settings.Message = dbm.DataReaderValue("Message") == DBNull.Value ? null : (string)dbm.DataReaderValue("Message");
                settings.ShowLoggedOnUserOptions  = (bool)dbm.DataReaderValue("ShowLoggedOnUserOptions");
                settings.ShowLoggedOffUserOptions = (bool)dbm.DataReaderValue("ShowLoggedOffUserOptions");
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #12
0
        /// <summary>
        /// Retrieves list of pages filtered by tags.
        /// </summary>
        /// <param name="tenantId">Identifies website whose pages are listed.</param>
        /// <param name="parameters">Search and paging parameters.</param>
        /// <param name="tags">Tags used to filter pages.</param>
        /// <param name="pageId">Identifies the parent page whose child pages are returned (set NULL to include root folder of website).</param>
        /// <param name="sortBy">The sort order of pages returned.</param>
        /// <param name="sortAsc">True to sort ascending, false to sort descending.</param>
        /// <param name="recursive">Set true to get all child pages, false if only direct descendants are required.</param>
        /// <param name="pageType">The type of page listed (document or folder).</param>
        /// <param name="loadTags">Indicates whether tags should be loaded for retrieved pages.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Search result.</returns>
        public ISearchResult <Page> ListTagged(long tenantId, ISearchParameters parameters, IList <Tag> tags, long?pageId, PageSortBy sortBy, bool sortAsc, bool recursive, PageType pageType, bool loadTags, IUnitOfWork unitOfWork = null)
        {
            TagCollection tagCollection = new TagCollection();

            foreach (Tag tag in tags)
            {
                tagCollection.Add(tag);
            }
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                List <Page> pages = new List <Page>();
                dbm.SetStoredProcedure(recursive ? "cms.ListTaggedPagesRecursive" : "cms.ListTaggedPages");
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@PageId", FieldType.BigInt, pageId ?? (object)DBNull.Value);
                dbm.AddParameter("@SortBy", FieldType.Int, (int)sortBy);
                dbm.AddParameter("@SortAsc", FieldType.Bit, sortAsc);
                dbm.AddParameter("@PageType", FieldType.Int, (int)pageType);
                dbm.AddParameter("@PageIndex", FieldType.Int, parameters.PageIndex);
                dbm.AddParameter("@PageSize", FieldType.Int, parameters.PageSize);
                dbm.AddParameter("@Tags", FieldType.Structured, tagCollection.Count == 0 ? null : tagCollection);
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    pages.Add(GetPage(dbm, false, false));
                }
                dbm.Read();
                int total = (int)dbm.DataReaderValue("Total");
                if (loadTags)
                {
                    LoadTagsForPages(dbm, tenantId, pages);
                }
                return(new SearchResult <Page> {
                    Items = pages, Total = total
                });
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
        public void DeleteByTenant(long tenantId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetStoredProcedure("cms.DeleteDomainsByTenant");
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
        /// <summary>
        /// Deletes a website.
        /// </summary>
        /// <param name="tenantId">Identifies website to delete.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        public void Delete(long tenantId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetSQL(_sqlManager.GetSql("Sql.DeleteWeb.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #15
0
        /// <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");
        }
Exemple #16
0
        public long CreatePost(CreatePostInfo info, DateTime created, IUnitOfWork unitOfWork = null)
        {
            IUnitOfWork localUnitOfWork = unitOfWork == null?_unitOfWorkFactory.CreateUnitOfWork() : null;

            try
            {
                IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork ?? localUnitOfWork);
                string           sql = _sqlManager.GetSql("Sql.CreateForumPost.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, info.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, info.ElementId);
                dbm.AddParameter("@ThreadId", FieldType.BigInt, info.ThreadId);
                dbm.AddParameter("@ParentPostId", FieldType.BigInt, info.ParentPostId == null ? (object)DBNull.Value : (object)info.ParentPostId);
                dbm.AddParameter("@UserId", FieldType.BigInt, info.UserId);
                dbm.AddParameter("@Message", FieldType.NVarChar, -1, info.Message);
                dbm.AddParameter("@Created", FieldType.DateTime, created);
                dbm.AddOutputParameter("@PostId", FieldType.BigInt);
                Dictionary <string, object> outputValues = new Dictionary <string, object>();
                dbm.ExecuteNonQuery(outputValues);
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Commit();
                }
                return((long)outputValues["@PostId"]);
            }
            catch
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Rollback();
                }
                throw;
            }
            finally
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Dispose();
                }
            }
        }
        public IEnumerable <IElementSettings> ListElements(long tenantId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                List <IElementSettings> elements = new List <IElementSettings>();
                dbm.SetSQL(_sqlManager.GetSql("Sql.ListElements.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    elements.Add(GetElementSettingsFromDatabaseManager(dbm));
                }
                return(elements);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
        public Domain ReadByUrl(string url, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                Domain domain = null;
                dbm.SetStoredProcedure("cms.ReadDomainByUrl");
                dbm.AddParameter("@Url", FieldType.NVarChar, 256, url);
                dbm.ExecuteReader();
                if (dbm.Read())
                {
                    domain = GetDomainFromDatabaseManager(dbm);
                }
                return(domain);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #19
0
        /// <summary>
        /// Gets administration master page identifier.
        /// </summary>
        /// <param name="tenantId">Identifies website that admin master page belongs to.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Admin master page identifier (or null if admin master page not found).</returns>
        private long?GetAdministrationMasterPageId(long tenantId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                long?masterPageId = null;
                dbm.SetStoredProcedure("cms.GetAdministrationMasterPageId");
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.ExecuteReader();
                if (dbm.Read())
                {
                    masterPageId = (long)dbm.DataReaderValue("MasterPageId");
                }
                return(masterPageId);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #20
0
        /// <summary>
        /// Lists a website's master pages that can be created.
        /// </summary>
        /// <param name="tenantId">Identifies website that master pages belong to.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Collection of master pages that can be created.</returns>
        public IEnumerable <MasterPage> ListCreatable(long tenantId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                List <MasterPage> masterPages = new List <MasterPage>();
                dbm.SetSQL(_sqlManager.GetSql("Sql.ListCreatableMasterPages.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    masterPages.Add(GetMasterPage(dbm, false));
                }
                return(masterPages);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #21
0
        /// <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();
                }
            }
        }
        /// <summary>
        /// Gets website details.
        /// </summary>
        /// <param name="tenantId">Identifies website whose details are returned.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Website details (or null if website not found).</returns>
        public Web Read(long tenantId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                Web web = null;
                dbm.SetSQL(_sqlManager.GetSql("Sql.ReadWeb.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.ExecuteReader();
                if (dbm.Read())
                {
                    web = GetWebFromDatabaseManager(dbm);
                }
                return(web);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #23
0
        public IEnumerable <Guid> ListAssetElementTypes(long tenantId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                List <Guid> guids = new List <Guid>();
                dbm.SetSQL(_sqlManager.GetSql("Sql.ListAssetElementTypes.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    guids.Add((Guid)dbm.DataReaderValue("ElementTypeId"));
                }
                return(guids);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
        /// <summary>
        /// Gets website details.
        /// </summary>
        /// <param name="name">Name of website whose details are returned.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Website details (or null if website not found).</returns>
        public Web ReadByName(string name, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                Web web = null;
                dbm.SetSQL(_sqlManager.GetSql("Sql.ReadWebByName.sql"));
                dbm.AddParameter("@Name", FieldType.NVarChar, 256, name);
                dbm.ExecuteReader();
                if (dbm.Read())
                {
                    web = GetWebFromDatabaseManager(dbm);
                }
                return(web);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
        /// <summary>
        /// Creates a new table element.
        /// </summary>
        /// <param name="settings">Table settings.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        public void Create(TableSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetSQL(_sqlManager.GetSql("Sql.CreateTable.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@DisplayName", FieldType.NVarChar, TableLengths.DisplayNameMaxLength, settings.DisplayName);
                dbm.AddParameter("@Preamble", FieldType.NVarChar, -1, settings.Preamble);
                dbm.AddParameter("@ShowHeaders", FieldType.Bit, settings.ShowHeaders);
                dbm.AddParameter("@Rows", FieldType.NVarChar, -1, settings.Rows);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #26
0
        public void UpdatePost(UpdatePostInfo info, DateTime updated, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.UpdateForumPost.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, info.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, info.ElementId);
                dbm.AddParameter("@ThreadId", FieldType.BigInt, info.ThreadId);
                dbm.AddParameter("@PostId", FieldType.BigInt, info.PostId);
                dbm.AddParameter("@Message", FieldType.NVarChar, -1, info.Message);
                dbm.AddParameter("@Updated", FieldType.DateTime, updated);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #27
0
        /// <summary>
        /// Get elements for master pages belonging to the specified tenant.
        /// </summary>
        /// <param name="tenantId">Tenant identifier.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Collection of elements.</returns>
        public IEnumerable <MasterPage> ListElementsByMasterPage(long tenantId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                List <MasterPage> masterPages = new List <MasterPage>();
                dbm.SetSQL(_sqlManager.GetSql("Sql.ListMasterPageElements.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.ExecuteReader();
                MasterPage            masterPage            = null;
                MasterPageZone        masterPageZone        = null;
                MasterPageZoneElement masterPageZoneElement = null;
                while (dbm.Read())
                {
                    // Get master page details, create new master page each time master page identifier changes
                    long masterPageId = (long)dbm.DataReaderValue("MasterPageId");
                    if (masterPage == null || masterPage.MasterPageId != masterPageId)
                    {
                        masterPage = new MasterPage {
                            TenantId = tenantId, MasterPageId = masterPageId, Name = (string)dbm.DataReaderValue("MasterPageName"), MasterPageZones = new List <MasterPageZone>()
                        };
                        masterPages.Add(masterPage);
                        masterPageZone        = null;
                        masterPageZoneElement = null;
                    }

                    // Get master page zone details, create new master page zone each time master page zone identifier changes
                    long masterPageZoneId = (long)dbm.DataReaderValue("MasterPageZoneId");
                    if (masterPageZone == null || masterPageZone.MasterPageZoneId != masterPageZoneId)
                    {
                        masterPageZone = new MasterPageZone {
                            TenantId = tenantId, MasterPageId = masterPageId, MasterPageZoneId = masterPageZoneId, Name = (string)dbm.DataReaderValue("MasterPageZoneName"), MasterPageZoneElements = new List <MasterPageZoneElement>()
                        };
                        masterPage.MasterPageZones.Add(masterPageZone);
                        masterPageZoneElement = null;
                    }

                    // Get master page zone element details, create new master page zone element each time master page zone element identifier changes
                    long masterPageZoneElementId = (long)dbm.DataReaderValue("MasterPageZoneElementId");
                    if (masterPageZoneElement == null || masterPageZoneElement.MasterPageZoneElementId != masterPageZoneElementId)
                    {
                        masterPageZoneElement = new MasterPageZoneElement {
                            TenantId = tenantId, MasterPageId = masterPageId, MasterPageZoneId = masterPageZoneId, MasterPageZoneElementId = masterPageZoneElementId
                        };
                        masterPageZone.MasterPageZoneElements.Add(masterPageZoneElement);
                    }

                    // Get element details
                    masterPageZoneElement.Element = new ElementSettings {
                        TenantId = tenantId, ElementId = (long)dbm.DataReaderValue("ElementId"), ElementTypeId = (Guid)dbm.DataReaderValue("ElementTypeId"), Name = (string)dbm.DataReaderValue("Name")
                    };
                    masterPageZoneElement.ElementId = masterPageZoneElement.Element.ElementId;
                }
                return(masterPages);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #28
0
 /// <summary>
 /// Adds parameters to database manager that are to do with master page details.
 /// </summary>
 /// <param name="masterPage">Master page.</param>
 /// <param name="dbm">The database manager where parameters are added.</param>
 private void AddMasterPageDetailsParameters(MasterPage masterPage, IDatabaseManager dbm)
 {
     dbm.AddParameter("@Name", FieldType.NVarChar, MasterPageLengths.NameMaxLength, masterPage.Name);
     dbm.AddParameter("@PageName", FieldType.NVarChar, MasterPageLengths.PageNameMaxLength, masterPage.PageName);
     dbm.AddParameter("@PageDescription", FieldType.NVarChar, -1, masterPage.PageDescription ?? (object)DBNull.Value);
     dbm.AddParameter("@AncestorPageId", FieldType.BigInt, masterPage.AncestorPageId ?? (object)DBNull.Value);
     dbm.AddParameter("@AncestorPageLevel", FieldType.Int, masterPage.AncestorPageLevel ?? (object)DBNull.Value);
     dbm.AddParameter("@PageType", FieldType.Int, (int)masterPage.PageType);
     dbm.AddParameter("@HasOccurred", FieldType.Bit, masterPage.HasOccurred);
     dbm.AddParameter("@HasImage", FieldType.Bit, masterPage.HasImage);
     dbm.AddParameter("@ThumbnailImageWidth", FieldType.Int, masterPage.ThumbnailImageWidth ?? (object)DBNull.Value);
     dbm.AddParameter("@ThumbnailImageHeight", FieldType.Int, masterPage.ThumbnailImageHeight ?? (object)DBNull.Value);
     dbm.AddParameter("@ThumbnailImageResizeMode", FieldType.Int, masterPage.ThumbnailImageResizeMode ?? (object)DBNull.Value);
     dbm.AddParameter("@PreviewImageWidth", FieldType.Int, masterPage.PreviewImageWidth ?? (object)DBNull.Value);
     dbm.AddParameter("@PreviewImageHeight", FieldType.Int, masterPage.PreviewImageHeight ?? (object)DBNull.Value);
     dbm.AddParameter("@PreviewImageResizeMode", FieldType.Int, masterPage.PreviewImageResizeMode ?? (object)DBNull.Value);
     dbm.AddParameter("@ImageMinWidth", FieldType.Int, masterPage.ImageMinWidth ?? (object)DBNull.Value);
     dbm.AddParameter("@ImageMinHeight", FieldType.Int, masterPage.ImageMinHeight ?? (object)DBNull.Value);
     dbm.AddParameter("@Creatable", FieldType.Bit, masterPage.Creatable);
     dbm.AddParameter("@Deletable", FieldType.Bit, masterPage.Deletable);
     dbm.AddParameter("@Taggable", FieldType.Bit, masterPage.Taggable);
     dbm.AddParameter("@Administration", FieldType.Bit, masterPage.Administration);
     dbm.AddParameter("@BeginRender", FieldType.NVarChar, -1, masterPage.BeginRender ?? (object)DBNull.Value);
     dbm.AddParameter("@EndRender", FieldType.NVarChar, -1, masterPage.EndRender ?? (object)DBNull.Value);
 }
        public void Create(ShareSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.CreateShare.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@DisplayName", FieldType.NVarChar, 256, settings.DisplayName ?? (object)DBNull.Value);
                dbm.AddParameter("@ShareOnDigg", FieldType.Bit, settings.ShareOnDigg);
                dbm.AddParameter("@ShareOnFacebook", FieldType.Bit, settings.ShareOnFacebook);
                dbm.AddParameter("@ShareOnGoogle", FieldType.Bit, settings.ShareOnGoogle);
                dbm.AddParameter("@ShareOnLinkedIn", FieldType.Bit, settings.ShareOnLinkedIn);
                dbm.AddParameter("@ShareOnPinterest", FieldType.Bit, settings.ShareOnPinterest);
                dbm.AddParameter("@ShareOnReddit", FieldType.Bit, settings.ShareOnReddit);
                dbm.AddParameter("@ShareOnStumbleUpon", FieldType.Bit, settings.ShareOnStumbleUpon);
                dbm.AddParameter("@ShareOnTumblr", FieldType.Bit, settings.ShareOnTumblr);
                dbm.AddParameter("@ShareOnTwitter", FieldType.Bit, settings.ShareOnTwitter);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Exemple #30
0
        /// <summary>
        /// Updates a page (not including zones and elements).
        /// </summary>
        /// <param name="page">Updated page details.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        public void Update(Page page, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetStoredProcedure("cms.UpdatePage");
                dbm.AddParameter("@TenantId", FieldType.BigInt, page.TenantId);
                dbm.AddParameter("@PageId", FieldType.BigInt, page.PageId);
                dbm.AddParameter("@ParentPageId", FieldType.BigInt, page.ParentPageId ?? (object)DBNull.Value);
                dbm.AddParameter("@MasterPageId", FieldType.BigInt, page.MasterPageId);
                dbm.AddParameter("@Name", FieldType.NVarChar, 256, page.Name);
                dbm.AddParameter("@Description", FieldType.NVarChar, -1, page.Description ?? (object)DBNull.Value);
                dbm.AddParameter("@Created", FieldType.DateTime, page.Created);
                dbm.AddParameter("@Updated", FieldType.DateTime, page.Updated);
                dbm.AddParameter("@Occurred", FieldType.DateTime, page.Occurred ?? (object)DBNull.Value);
                dbm.AddParameter("@ImageTenantId", FieldType.BigInt, page.ImageTenantId ?? (object)DBNull.Value);
                dbm.AddParameter("@ThumbnailImageUploadId", FieldType.BigInt, page.ThumbnailImageUploadId ?? (object)DBNull.Value);
                dbm.AddParameter("@PreviewImageUploadId", FieldType.BigInt, page.PreviewImageUploadId ?? (object)DBNull.Value);
                dbm.AddParameter("@ImageUploadId", FieldType.BigInt, page.ImageUploadId ?? (object)DBNull.Value);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }