protected void gLayoutBlocks_Delete(object sender, RowEventArgs e)
        {
            Rock.CMS.BlockInstance blockInstance = blockInstanceService.Get(( int )gLayoutBlocks.DataKeys[e.RowIndex]["id"]);
            if (BlockInstance != null)
            {
                blockInstanceService.Delete(blockInstance, CurrentPersonId);
                blockInstanceService.Save(blockInstance, CurrentPersonId);

                _page.FlushBlockInstances();
            }

            BindGrids();
        }
        public void UpdateBlockInstance(string id, Rock.CMS.DTO.BlockInstance BlockInstance)
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();

            if (currentUser == null)
            {
                throw new WebFaultException <string>("Must be logged in", System.Net.HttpStatusCode.Forbidden);
            }

            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.BlockInstanceService BlockInstanceService  = new Rock.CMS.BlockInstanceService();
                Rock.CMS.BlockInstance        existingBlockInstance = BlockInstanceService.Get(int.Parse(id));
                if (existingBlockInstance.Authorized("Edit", currentUser))
                {
                    uow.objectContext.Entry(existingBlockInstance).CurrentValues.SetValues(BlockInstance);

                    if (existingBlockInstance.IsValid)
                    {
                        BlockInstanceService.Save(existingBlockInstance, currentUser.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>(existingBlockInstance.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
        public void ApiDeleteBlockInstance(string id, string apiKey)
        {
            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User        user        = userService.Queryable().Where(u => u.ApiKey == apiKey).FirstOrDefault();

                if (user != null)
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.BlockInstanceService BlockInstanceService = new Rock.CMS.BlockInstanceService();
                    Rock.CMS.BlockInstance        BlockInstance        = BlockInstanceService.Get(int.Parse(id));
                    if (BlockInstance.Authorized("Edit", user))
                    {
                        BlockInstanceService.Delete(BlockInstance, user.PersonId);
                        BlockInstanceService.Save(BlockInstance, user.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>("Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Invalid API Key", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
        public void DeleteBlockInstance(string id)
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();

            if (currentUser == null)
            {
                throw new WebFaultException <string>("Must be logged in", System.Net.HttpStatusCode.Forbidden);
            }

            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.BlockInstanceService BlockInstanceService = new Rock.CMS.BlockInstanceService();
                Rock.CMS.BlockInstance        BlockInstance        = BlockInstanceService.Get(int.Parse(id));
                if (BlockInstance.Authorized("Edit", currentUser))
                {
                    BlockInstanceService.Delete(BlockInstance, currentUser.PersonId);
                    BlockInstanceService.Save(BlockInstance, currentUser.PersonId);
                }
                else
                {
                    throw new WebFaultException <string>("Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
        public void ApiCreateBlockInstance(string apiKey, Rock.CMS.DTO.BlockInstance BlockInstance)
        {
            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User        user        = userService.Queryable().Where(u => u.ApiKey == apiKey).FirstOrDefault();

                if (user != null)
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.BlockInstanceService BlockInstanceService  = new Rock.CMS.BlockInstanceService();
                    Rock.CMS.BlockInstance        existingBlockInstance = new Rock.CMS.BlockInstance();
                    BlockInstanceService.Add(existingBlockInstance, user.PersonId);
                    uow.objectContext.Entry(existingBlockInstance).CurrentValues.SetValues(BlockInstance);

                    if (existingBlockInstance.IsValid)
                    {
                        BlockInstanceService.Save(existingBlockInstance, user.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>(existingBlockInstance.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Invalid API Key", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
        protected void masterPage_OnSave( object sender, EventArgs e )
        {
            if ( Page.IsValid )
            {
                using ( new Rock.Data.UnitOfWorkScope() )
                {
                    Rock.CMS.BlockInstanceService blockInstanceService = new Rock.CMS.BlockInstanceService();
                    Rock.CMS.BlockInstance blockInstance = blockInstanceService.Get( _blockInstance.Id );

                    Rock.Attribute.Helper.LoadAttributes( blockInstance );

                    blockInstance.Name = tbBlockName.Text;
                    blockInstance.OutputCacheDuration = Int32.Parse( tbCacheDuration.Text );
                    blockInstanceService.Save( blockInstance, CurrentPersonId );

                    Rock.Attribute.Helper.GetEditValues( phAttributes, _blockInstance );
                    _blockInstance.SaveAttributeValues( CurrentPersonId );

                    Rock.Web.Cache.BlockInstance.Flush( _blockInstance.Id );
                }

                string script = "window.parent.closeModal()";
                ScriptManager.RegisterStartupScript( this.Page, this.GetType(), "close-modal", script, true );
            }
        }
        protected void masterPage_OnSave(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                using (new Rock.Data.UnitOfWorkScope())
                {
                    Rock.CMS.BlockInstanceService blockInstanceService = new Rock.CMS.BlockInstanceService();
                    Rock.CMS.BlockInstance        blockInstance        = blockInstanceService.Get(_blockInstance.Id);

                    Rock.Attribute.Helper.LoadAttributes(blockInstance);

                    blockInstance.Name = tbBlockName.Text;
                    blockInstance.OutputCacheDuration = Int32.Parse(tbCacheDuration.Text);
                    blockInstanceService.Save(blockInstance, CurrentPersonId);

                    Rock.Attribute.Helper.GetEditValues(phAttributes, _blockInstance);
                    _blockInstance.SaveAttributeValues(CurrentPersonId);

                    Rock.Web.Cache.BlockInstance.Flush(_blockInstance.Id);
                }

                string script = "window.parent.closeModal()";
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "close-modal", script, true);
            }
        }
Beispiel #8
0
        public void ApiMove(string id, string apiKey, Rock.CMS.DTO.BlockInstance BlockInstance)
        {
            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User        user        = userService.Queryable().Where(u => u.ApiKey == apiKey).FirstOrDefault();

                if (user != null)
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.BlockInstanceService BlockInstanceService  = new Rock.CMS.BlockInstanceService();
                    Rock.CMS.BlockInstance        existingBlockInstance = BlockInstanceService.Get(int.Parse(id));

                    if (existingBlockInstance.Authorized("Edit", user))
                    {
                        // If the block was moved from or to the layout section, then all the pages
                        // that use that layout need to be flushed from cache
                        if (existingBlockInstance.Layout != BlockInstance.Layout)
                        {
                            if (existingBlockInstance.Layout != null)
                            {
                                Rock.Web.Cache.Page.FlushLayout(existingBlockInstance.Layout);
                            }
                            if (BlockInstance.Layout != null)
                            {
                                Rock.Web.Cache.Page.FlushLayout(BlockInstance.Layout);
                            }
                        }

                        uow.objectContext.Entry(existingBlockInstance).CurrentValues.SetValues(BlockInstance);
                        BlockInstanceService.Move(existingBlockInstance);
                        BlockInstanceService.Save(existingBlockInstance, user.PersonId);
                    }
                    else
                    {
                        throw new WebFaultException <string>("Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden);
                    }
                }
                else
                {
                    throw new WebFaultException <string>("Invalid API Key", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
Beispiel #9
0
        public void Move(string id, Rock.CMS.DTO.BlockInstance BlockInstance)
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();

            if (currentUser == null)
            {
                throw new WebFaultException <string>("Must be logged in", System.Net.HttpStatusCode.Forbidden);
            }

            using (Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope())
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.BlockInstanceService BlockInstanceService  = new Rock.CMS.BlockInstanceService();
                Rock.CMS.BlockInstance        existingBlockInstance = BlockInstanceService.Get(int.Parse(id));

                if (existingBlockInstance.Authorized("Edit", currentUser))
                {
                    // If the block was moved from or to the layout section, then all the pages
                    // that use that layout need to be flushed from cache
                    if (existingBlockInstance.Layout != BlockInstance.Layout)
                    {
                        if (existingBlockInstance.Layout != null)
                        {
                            Rock.Web.Cache.Page.FlushLayout(existingBlockInstance.Layout);
                        }
                        if (BlockInstance.Layout != null)
                        {
                            Rock.Web.Cache.Page.FlushLayout(BlockInstance.Layout);
                        }
                    }

                    uow.objectContext.Entry(existingBlockInstance).CurrentValues.SetValues(BlockInstance);
                    BlockInstanceService.Move(existingBlockInstance);
                    BlockInstanceService.Save(existingBlockInstance, currentUser.PersonId);
                }
                else
                {
                    throw new WebFaultException <string>("Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden);
                }
            }
        }
        public void ApiMove( string id, string apiKey, Rock.CMS.DTO.BlockInstance BlockInstance )
        {
            using ( Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope() )
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User user = userService.Queryable().Where( u => u.ApiKey == apiKey ).FirstOrDefault();

                if ( user != null )
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.BlockInstanceService BlockInstanceService = new Rock.CMS.BlockInstanceService();
                    Rock.CMS.BlockInstance existingBlockInstance = BlockInstanceService.Get( int.Parse( id ) );

                    if ( existingBlockInstance.Authorized( "Edit", user ) )
                    {
                        // If the block was moved from or to the layout section, then all the pages
                        // that use that layout need to be flushed from cache
                        if ( existingBlockInstance.Layout != BlockInstance.Layout )
                        {
                            if ( existingBlockInstance.Layout != null )
                                Rock.Web.Cache.Page.FlushLayout( existingBlockInstance.Layout );
                            if ( BlockInstance.Layout != null )
                                Rock.Web.Cache.Page.FlushLayout( BlockInstance.Layout );
                        }

                        uow.objectContext.Entry( existingBlockInstance ).CurrentValues.SetValues( BlockInstance );
                        BlockInstanceService.Move( existingBlockInstance );
                        BlockInstanceService.Save( existingBlockInstance, user.PersonId );
                    }
                    else
                        throw new WebFaultException<string>( "Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden );
                }
                else
                    throw new WebFaultException<string>( "Invalid API Key", System.Net.HttpStatusCode.Forbidden );
            }
        }
        public void ApiDeleteBlockInstance( string id, string apiKey )
        {
            using ( Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope() )
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User user = userService.Queryable().Where( u => u.ApiKey == apiKey ).FirstOrDefault();

                if (user != null)
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.BlockInstanceService BlockInstanceService = new Rock.CMS.BlockInstanceService();
                    Rock.CMS.BlockInstance BlockInstance = BlockInstanceService.Get( int.Parse( id ) );
                    if ( BlockInstance.Authorized( "Edit", user ) )
                    {
                        BlockInstanceService.Delete( BlockInstance, user.PersonId );
                        BlockInstanceService.Save( BlockInstance, user.PersonId );
                    }
                    else
                        throw new WebFaultException<string>( "Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden );
                }
                else
                    throw new WebFaultException<string>( "Invalid API Key", System.Net.HttpStatusCode.Forbidden );
            }
        }
        public void ApiCreateBlockInstance( string apiKey, Rock.CMS.DTO.BlockInstance BlockInstance )
        {
            using ( Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope() )
            {
                Rock.CMS.UserService userService = new Rock.CMS.UserService();
                Rock.CMS.User user = userService.Queryable().Where( u => u.ApiKey == apiKey ).FirstOrDefault();

                if (user != null)
                {
                    uow.objectContext.Configuration.ProxyCreationEnabled = false;
                    Rock.CMS.BlockInstanceService BlockInstanceService = new Rock.CMS.BlockInstanceService();
                    Rock.CMS.BlockInstance existingBlockInstance = new Rock.CMS.BlockInstance();
                    BlockInstanceService.Add( existingBlockInstance, user.PersonId );
                    uow.objectContext.Entry(existingBlockInstance).CurrentValues.SetValues(BlockInstance);

                    if (existingBlockInstance.IsValid)
                        BlockInstanceService.Save( existingBlockInstance, user.PersonId );
                    else
                        throw new WebFaultException<string>( existingBlockInstance.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest );
                }
                else
                    throw new WebFaultException<string>( "Invalid API Key", System.Net.HttpStatusCode.Forbidden );
            }
        }
        public void Move( string id, Rock.CMS.DTO.BlockInstance BlockInstance )
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();
            if ( currentUser == null )
                throw new WebFaultException<string>( "Must be logged in", System.Net.HttpStatusCode.Forbidden );

            using ( Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope() )
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.BlockInstanceService BlockInstanceService = new Rock.CMS.BlockInstanceService();
                Rock.CMS.BlockInstance existingBlockInstance = BlockInstanceService.Get( int.Parse( id ) );

                if ( existingBlockInstance.Authorized( "Edit", currentUser ) )
                {
                    // If the block was moved from or to the layout section, then all the pages
                    // that use that layout need to be flushed from cache
                    if ( existingBlockInstance.Layout != BlockInstance.Layout )
                    {
                        if ( existingBlockInstance.Layout != null )
                            Rock.Web.Cache.Page.FlushLayout( existingBlockInstance.Layout );
                        if ( BlockInstance.Layout != null )
                            Rock.Web.Cache.Page.FlushLayout( BlockInstance.Layout );
                    }

                    uow.objectContext.Entry( existingBlockInstance ).CurrentValues.SetValues( BlockInstance );
                    BlockInstanceService.Move( existingBlockInstance );
                    BlockInstanceService.Save( existingBlockInstance, currentUser.PersonId );
                }
                else
                    throw new WebFaultException<string>( "Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden );
            }
        }
        public void UpdateBlockInstance( string id, Rock.CMS.DTO.BlockInstance BlockInstance )
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();
            if ( currentUser == null )
                throw new WebFaultException<string>("Must be logged in", System.Net.HttpStatusCode.Forbidden );

            using ( Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope() )
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.BlockInstanceService BlockInstanceService = new Rock.CMS.BlockInstanceService();
                Rock.CMS.BlockInstance existingBlockInstance = BlockInstanceService.Get( int.Parse( id ) );
                if ( existingBlockInstance.Authorized( "Edit", currentUser ) )
                {
                    uow.objectContext.Entry(existingBlockInstance).CurrentValues.SetValues(BlockInstance);

                    if (existingBlockInstance.IsValid)
                        BlockInstanceService.Save( existingBlockInstance, currentUser.PersonId );
                    else
                        throw new WebFaultException<string>( existingBlockInstance.ValidationResults.AsDelimited(", "), System.Net.HttpStatusCode.BadRequest );
                }
                else
                    throw new WebFaultException<string>( "Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden );
            }
        }
        public void DeleteBlockInstance( string id )
        {
            var currentUser = Rock.CMS.UserService.GetCurrentUser();
            if ( currentUser == null )
                throw new WebFaultException<string>("Must be logged in", System.Net.HttpStatusCode.Forbidden );

            using ( Rock.Data.UnitOfWorkScope uow = new Rock.Data.UnitOfWorkScope() )
            {
                uow.objectContext.Configuration.ProxyCreationEnabled = false;
                Rock.CMS.BlockInstanceService BlockInstanceService = new Rock.CMS.BlockInstanceService();
                Rock.CMS.BlockInstance BlockInstance = BlockInstanceService.Get( int.Parse( id ) );
                if ( BlockInstance.Authorized( "Edit", currentUser ) )
                {
                    BlockInstanceService.Delete( BlockInstance, currentUser.PersonId );
                    BlockInstanceService.Save( BlockInstance, currentUser.PersonId );
                }
                else
                    throw new WebFaultException<string>( "Not Authorized to Edit this BlockInstance", System.Net.HttpStatusCode.Forbidden );
            }
        }