GetMaxOrder() public method

Returns the next available position for a Rock.Model.Block in a given Zone.
public GetMaxOrder ( Block block ) : int
block Block A entity object.
return int
        public void Move( int id, Block block )
        {
            var user = CurrentUser();
            if ( user != null )
            {
                var service = new BlockService();
                block.Id = id;
                Block model;
                if ( !service.TryGet( id, out model ) )
                    throw new HttpResponseException( HttpStatusCode.NotFound );

                if ( !model.IsAuthorized( "Edit", user.Person ) )
                    throw new HttpResponseException( HttpStatusCode.Unauthorized );

                if ( model.LayoutId.HasValue && model.LayoutId != block.LayoutId )
                    Rock.Web.Cache.PageCache.FlushLayoutBlocks( model.LayoutId.Value );

                if ( block.LayoutId.HasValue )
                    Rock.Web.Cache.PageCache.FlushLayoutBlocks( block.LayoutId.Value );
                else
                {
                    var page = Rock.Web.Cache.PageCache.Read( block.PageId.Value );
                    page.FlushBlocks();
                }

                model.Zone = block.Zone;
                model.PageId = block.PageId;
                model.LayoutId = block.LayoutId;

                if ( model.IsValid )
                {
                    model.Order = service.GetMaxOrder( model );
                    service.Save( model, user.PersonId );
                }
                else
                    throw new HttpResponseException( HttpStatusCode.BadRequest );
            }
            else
                throw new HttpResponseException( HttpStatusCode.Unauthorized );
        }