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(); } } }
/// <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(); } } }
/// <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(); } } }
/// <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(); } } }
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(); } } }
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(); } } }
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(); } } }
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(); } } }
/// <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(); } } }
/// <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"); }
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(); } } }
/// <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(); } } }
/// <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(); } } }
/// <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(); } } }
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(); } } }
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(); } } }
/// <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(); } } }
/// <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(); } } }
/// <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(); } } }