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

            try
            {
                string sql = _sqlManager.GetSql("Sql.CreatePageHeader.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@PageTenantId", FieldType.BigInt, settings.PageTenantId ?? (object)DBNull.Value);
                dbm.AddParameter("@PageId", FieldType.BigInt, settings.PageId ?? (object)DBNull.Value);
                dbm.AddParameter("@ShowName", FieldType.Bit, settings.ShowName);
                dbm.AddParameter("@ShowDescription", FieldType.Bit, settings.ShowDescription);
                dbm.AddParameter("@ShowImage", FieldType.Bit, settings.ShowImage);
                dbm.AddParameter("@ShowCreated", FieldType.Bit, settings.ShowCreated);
                dbm.AddParameter("@ShowUpdated", FieldType.Bit, settings.ShowUpdated);
                dbm.AddParameter("@ShowOccurred", FieldType.Bit, settings.ShowOccurred);
                dbm.AddParameter("@ShowBreadcrumbs", FieldType.Bit, settings.ShowBreadcrumbs);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #2
0
        public void Read(CarouselSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.ReadCarousel.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.ExecuteReader();
                settings.Slides = new List <CarouselSlide>();
                while (dbm.Read())
                {
                    settings.Slides.Add(GetCarouselSlideFromDatabaseManager(dbm));
                }
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #3
0
        public void Create(ContactSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetSQL(_sqlManager.GetSql("Sql.CreateContact.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@DisplayName", FieldType.NVarChar, ContactLengths.DisplayNameMaxLength, settings.DisplayName ?? (object)DBNull.Value);
                dbm.AddParameter("@Preamble", FieldType.NVarChar, -1, settings.Preamble ?? (object)DBNull.Value);
                dbm.AddParameter("@Address", FieldType.NVarChar, ContactLengths.AddressMaxLength, settings.Address ?? (object)DBNull.Value);
                dbm.AddParameter("@Email", FieldType.NVarChar, ContactLengths.EmailMaxLength, settings.Email ?? (object)DBNull.Value);
                dbm.AddParameter("@FacebookUsername", FieldType.NVarChar, ContactLengths.FacebookUsernameMaxLength, settings.FacebookUsername ?? (object)DBNull.Value);
                dbm.AddParameter("@InstagramUsername", FieldType.NVarChar, ContactLengths.InstagramUsernameMaxLength, settings.InstagramUsername ?? (object)DBNull.Value);
                dbm.AddParameter("@LinkedInCompanyUsername", FieldType.NVarChar, ContactLengths.LinkedInCompanyUsernameMaxLength, settings.LinkedInCompanyUsername ?? (object)DBNull.Value);
                dbm.AddParameter("@LinkedInPersonalUsername", FieldType.NVarChar, ContactLengths.LinkedInPersonalUsernameMaxLength, settings.LinkedInPersonalUsername ?? (object)DBNull.Value);
                dbm.AddParameter("@TelephoneNumber1", FieldType.NVarChar, ContactLengths.TelephoneNumber1MaxLength, settings.TelephoneNumber1 ?? (object)DBNull.Value);
                dbm.AddParameter("@TelephoneNumber2", FieldType.NVarChar, ContactLengths.TelephoneNumber2MaxLength, settings.TelephoneNumber2 ?? (object)DBNull.Value);
                dbm.AddParameter("@TwitterUsername", FieldType.NVarChar, ContactLengths.TwitterUsernameMaxLength, settings.TwitterUsername ?? (object)DBNull.Value);
                dbm.AddParameter("@YouTubeChannelId", FieldType.NVarChar, ContactLengths.YouTubeChannelIdMaxLength, settings.YouTubeChannelId ?? (object)DBNull.Value);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #4
0
        public void Create(TagCloudSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.CreateTagCloud.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@PageTenantId", FieldType.BigInt, settings.PageTenantId ?? (object)DBNull.Value);
                dbm.AddParameter("@PageId", FieldType.BigInt, settings.PageId ?? (object)DBNull.Value);
                dbm.AddParameter("@DisplayName", FieldType.NVarChar, 256, settings.DisplayName ?? (object)DBNull.Value);
                dbm.AddParameter("@Recursive", FieldType.Bit, settings.Recursive);
                dbm.AddParameter("@NoTagsMessage", FieldType.NVarChar, -1, settings.NoTagsMessage);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #5
0
        /// <summary>
        /// Searches templates.
        /// </summary>
        /// <param name="parameters">Search and paging parameters.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Search result.</returns>
        public ISearchResult <Template> Search(ISearchParameters parameters, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                List <Template> templates = new List <Template>();
                dbm.SetStoredProcedure("cms.SearchTemplates");
                dbm.AddParameter("@PageIndex", FieldType.Int, parameters.PageIndex);
                dbm.AddParameter("@PageSize", FieldType.Int, parameters.PageSize);
                dbm.AddParameter("@Search", FieldType.NVarChar, 50, parameters.Search);
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    templates.Add(GetTemplate(dbm, false));
                }
                dbm.Read();
                int total = (int)dbm.DataReaderValue("Total");
                return(new SearchResult <Template> {
                    Items = templates, Total = total
                });
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #6
0
        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();
                }
            }
        }
Пример #7
0
        public ISearchResult <Domain> Search(long tenantId, ISearchParameters parameters, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                List <Domain> domains = new List <Domain>();
                dbm.SetStoredProcedure("cms.SearchDomains");
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@PageIndex", FieldType.Int, parameters.PageIndex);
                dbm.AddParameter("@PageSize", FieldType.Int, parameters.PageSize);
                dbm.AddParameter("@Search", FieldType.NVarChar, 50, parameters.Search);
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    domains.Add(GetDomainFromDatabaseManager(dbm));
                }
                dbm.Read();
                int total = (int)dbm.DataReaderValue("Total");
                return(new SearchResult <Domain> {
                    Items = domains, Total = total
                });
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #8
0
        /// <summary>
        /// Searches websites.
        /// </summary>
        /// <param name="parameters">Search and paging parameters.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Search result.</returns>
        public ISearchResult <Web> Search(ISearchParameters parameters, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                List <Web> webs = new List <Web>();
                dbm.SetSQL(_sqlManager.GetSql("Sql.SearchWebs.sql"));
                dbm.AddParameter("@PageIndex", FieldType.Int, parameters.PageIndex);
                dbm.AddParameter("@PageSize", FieldType.Int, parameters.PageSize);
                dbm.AddParameter("@Search", FieldType.NVarChar, 50, parameters.Search);
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    webs.Add(GetWebFromDatabaseManager(dbm));
                }
                dbm.Read();
                int total = (int)dbm.DataReaderValue("Total");
                return(new SearchResult <Web> {
                    Items = webs, Total = total
                });
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #9
0
        public User ReadUser(long tenantId, long userId, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                User user = null;
                dbm.SetSQL(_sqlManager.GetSql("Sql.ReadUser.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@UserId", FieldType.BigInt, userId);
                dbm.ExecuteReader();
                if (dbm.Read())
                {
                    user = GetUserFromDatabaseManager(dbm);
                }
                return(user);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #10
0
        public void RegisterDeployment(long tenantId, string hostname, DateTime deployed, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetSQL(_sqlManager.GetSql("Sql.RegisterAssetDeployment.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@Hostname", FieldType.NVarChar, 100, hostname);
                dbm.AddParameter("@Deployed", FieldType.DateTime, deployed);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #11
0
        public void Create(PageListSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetSQL(_sqlManager.GetSql("Sql.CreatePageList.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@PageTenantId", FieldType.BigInt, settings.PageTenantId ?? (object)DBNull.Value);
                dbm.AddParameter("@PageId", FieldType.BigInt, settings.PageId ?? (object)DBNull.Value);
                dbm.AddParameter("@DisplayName", FieldType.NVarChar, 256, settings.DisplayName ?? (object)DBNull.Value);
                dbm.AddParameter("@SortBy", FieldType.Int, (int)settings.SortBy);
                dbm.AddParameter("@SortAsc", FieldType.Bit, settings.SortAsc);
                dbm.AddParameter("@ShowRelated", FieldType.Bit, settings.ShowRelated);
                dbm.AddParameter("@ShowDescription", FieldType.Bit, settings.ShowDescription);
                dbm.AddParameter("@ShowImage", FieldType.Bit, settings.ShowImage);
                dbm.AddParameter("@ShowBackgroundImage", FieldType.Bit, settings.ShowBackgroundImage);
                dbm.AddParameter("@ShowCreated", FieldType.Bit, settings.ShowCreated);
                dbm.AddParameter("@ShowUpdated", FieldType.Bit, settings.ShowUpdated);
                dbm.AddParameter("@ShowOccurred", FieldType.Bit, settings.ShowOccurred);
                dbm.AddParameter("@ShowComments", FieldType.Bit, settings.ShowComments);
                dbm.AddParameter("@ShowTags", FieldType.Bit, settings.ShowTags);
                dbm.AddParameter("@ShowPager", FieldType.Bit, settings.ShowPager);
                dbm.AddParameter("@MoreMessage", FieldType.NVarChar, 256, settings.MoreMessage ?? (object)DBNull.Value);
                dbm.AddParameter("@Recursive", FieldType.Bit, settings.Recursive);
                dbm.AddParameter("@PageType", FieldType.Int, (int)settings.PageType);
                dbm.AddParameter("@PageSize", FieldType.Int, settings.PageSize);
                dbm.AddParameter("@NoPagesMessage", FieldType.NVarChar, -1, settings.NoPagesMessage ?? (object)DBNull.Value);
                dbm.AddParameter("@Preamble", FieldType.NVarChar, -1, settings.Preamble ?? (object)DBNull.Value);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #12
0
        /// <summary>
        /// Creates a new upload.
        /// </summary>
        /// <param name="upload">New upload details.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Newly allocated upload identifier.</returns>
        public long CreateUpload(Upload upload, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetStoredProcedure("cms.CreateUpload");
                dbm.AddParameter("@TenantId", FieldType.BigInt, upload.TenantId);
                dbm.AddParameter("@UploadType", FieldType.Int, (int)upload.UploadType);
                dbm.AddParameter("@Name", FieldType.NVarChar, -1, upload.Name);
                dbm.AddParameter("@Size", FieldType.Int, upload.Size);
                dbm.AddParameter("@Committed", FieldType.Bit, upload.Committed);
                dbm.AddParameter("@Created", FieldType.DateTime, upload.Created);
                dbm.AddParameter("@Updated", FieldType.DateTime, upload.Updated);
                dbm.AddOutputParameter("@UploadId", FieldType.BigInt);
                Dictionary <string, object> outputValues = new Dictionary <string, object>();
                dbm.ExecuteNonQuery(outputValues);
                return((long)outputValues["@UploadId"]);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #13
0
        public void Create(CodeSnippetSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.CreateCodeSnippet.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@Code", FieldType.NVarChar, -1, settings.Code);
                dbm.AddParameter("@Language", FieldType.Int, (int)settings.Language);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #14
0
        public void Create(NavBarSettings settings, IUnitOfWork unitOfWork = null)
        {
            NavBarTabCollection navBarTabCollection = GetNavBarTabCollection(settings);
            IUnitOfWork         localUnitOfWork     = unitOfWork == null?_unitOfWorkFactory.CreateUnitOfWork() : null;

            try
            {
                IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork ?? localUnitOfWork);
                string           sql = _sqlManager.GetSql("Sql.CreateNavBar.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@Name", FieldType.NVarChar, 50, settings.NavBarName ?? (object)DBNull.Value);
                dbm.AddParameter("@ShowLoggedOnUserOptions", FieldType.Bit, settings.ShowLoggedOnUserOptions);
                dbm.AddParameter("@ShowLoggedOffUserOptions", FieldType.Bit, settings.ShowLoggedOffUserOptions);
                dbm.AddTypedParameter("@NavBarTabs", FieldType.Structured, navBarTabCollection.Count == 0 ? null : navBarTabCollection, "element.NavBarTabTableType");
                dbm.ExecuteNonQuery();
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Commit();
                }
            }
            catch
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Rollback();
                }
                throw;
            }
            finally
            {
                if (localUnitOfWork != null)
                {
                    localUnitOfWork.Dispose();
                }
            }
        }
Пример #15
0
        public void Create(FooterSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.CreateFooter.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();
                }
            }
        }
Пример #16
0
        /// <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();
                }
            }
        }
Пример #17
0
        public void Create(MapSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.CreateMap.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("@Latitude", FieldType.Float, 53, settings.Latitude);
                dbm.AddParameter("@Longitude", FieldType.Float, 53, settings.Longitude);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #18
0
        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();
                }
            }
        }
Пример #19
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();
                }
            }
        }
Пример #20
0
        public IEnumerable <Role> ListRoles(IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                // The list that will be returned
                List <Role>             roles     = new List <Role>();
                Dictionary <long, Role> rolesById = new Dictionary <long, Role>();

                // Get roles
                dbm.SetSQL(_sqlManager.GetSql("Sql.ListRoles.sql"));
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    Role role = GetRoleFromDatabaseManager(dbm);
                    roles.Add(role);
                    rolesById.Add(role.RoleId, role);
                }

                // Get functions
                while (dbm.Read())
                {
                    long     roleId   = (long)dbm.DataReaderValue("RoleId");
                    Role     role     = rolesById[roleId];
                    Function function = GetFunctionFromDatabaseManager(dbm);
                    role.Functions.Add(function);
                }

                // Return list of roles
                return(roles);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #21
0
        /// <summary>
        /// Creates a new tenant.
        /// </summary>
        /// <param name="tenant">New tenant details.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Newly allocated tenant identifier.</returns>
        public long Create(Tenant tenant, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetStoredProcedure("cms.CreateTenant");
                dbm.AddParameter("@Created", FieldType.DateTime, tenant.Created);
                dbm.AddParameter("@Updated", FieldType.DateTime, tenant.Updated);
                dbm.AddOutputParameter("@TenantId", FieldType.BigInt);
                Dictionary <string, object> outputValues = new Dictionary <string, object>();
                dbm.ExecuteNonQuery(outputValues);
                return((long)outputValues["@TenantId"]);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #22
0
        public long Create(IElementSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                dbm.SetStoredProcedure("cms.CreateElement");
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementTypeId", FieldType.UniqueIdentifier, settings.ElementTypeId);
                dbm.AddParameter("@Name", FieldType.NVarChar, 50, settings.Name);
                dbm.AddOutputParameter("@ElementId", FieldType.BigInt);
                Dictionary <string, object> outputValues = new Dictionary <string, object>();
                dbm.ExecuteNonQuery(outputValues);
                return((long)outputValues["@ElementId"]);
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #23
0
        public void Create(ForumSettings settings, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                string sql = _sqlManager.GetSql("Sql.CreateForum.sql");
                dbm.SetSQL(sql);
                dbm.AddParameter("@TenantId", FieldType.BigInt, settings.TenantId);
                dbm.AddParameter("@ElementId", FieldType.BigInt, settings.ElementId);
                dbm.AddParameter("@ThreadCount", FieldType.Int, settings.ThreadCount);
                dbm.AddParameter("@PostCount", FieldType.Int, settings.PostCount);
                dbm.AddParameter("@OwnerTenantId", FieldType.BigInt, settings.OwnerTenantId ?? (object)DBNull.Value);
                dbm.AddParameter("@OwnerUserId", FieldType.BigInt, settings.OwnerUserId ?? (object)DBNull.Value);
                dbm.AddParameter("@OwnerOnlyThreads", FieldType.Bit, settings.OwnerOnlyThreads);
                dbm.ExecuteNonQuery();
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }
Пример #24
0
        /// <summary>
        /// Searches master pages.
        /// </summary>
        /// <param name="tenantId">Identifies website that master pages belong to.</param>
        /// <param name="parameters">Search and paging parameters.</param>
        /// <param name="unitOfWork">Unit of work.</param>
        /// <returns>Search result.</returns>
        public ISearchResult <MasterPage> Search(long tenantId, ISearchParameters parameters, IUnitOfWork unitOfWork = null)
        {
            IDatabaseManager dbm = _databaseManagerFactory.GetDatabaseManager(unitOfWork);

            try
            {
                List <MasterPage> masterPages = new List <MasterPage>();
                dbm.SetSQL(_sqlManager.GetSql("Sql.SearchMasterPages.sql"));
                dbm.AddParameter("@TenantId", FieldType.BigInt, tenantId);
                dbm.AddParameter("@PageIndex", FieldType.Int, parameters.PageIndex);
                dbm.AddParameter("@PageSize", FieldType.Int, parameters.PageSize);
                dbm.AddParameter("@Search", FieldType.NVarChar, 50, parameters.Search);
                dbm.ExecuteReader();
                while (dbm.Read())
                {
                    masterPages.Add(GetMasterPage(dbm, false));
                }
                dbm.Read();
                int total = (int)dbm.DataReaderValue("Total");
                return(new SearchResult <MasterPage> {
                    Items = masterPages, Total = total
                });
            }
            finally
            {
                if (unitOfWork == null)
                {
                    dbm.Dispose();
                }
            }
        }