Rock.Model.PageService.GetAllDescendents C# (CSharp) Method

GetAllDescendents() public method

Returns an enumerable collection of Rock.Model.Page">Pages that are descendants of a
public GetAllDescendents ( int parentPageId ) : IEnumerable
parentPageId int A representing the Id of the
return IEnumerable
        public IEnumerable<Page> GetAllDescendents( int parentPageId )
        {
            return ExecuteQuery(
                @"
                with CTE as (
                select * from [Page] where [ParentPageId]={0}
                union all
                select [a].* from [Page] [a]
                inner join CTE pcte on pcte.Id = [a].[ParentPageId]
                )
                select * from CTE
                ", parentPageId );
        }

Usage Example

Exemplo n.º 1
0
        /// <summary>
        /// Returns a list of matching people
        /// </summary>
        /// <param name="searchterm"></param>
        /// <returns></returns>
        public override IQueryable<string> Search( string searchterm )
        {
            var rootPageGuid = GetAttributeValue( "RootPage" ).AsGuid();
            var terms = searchterm.Split( ' ' );

            var pageServ = new PageService( new RockContext() );
            IEnumerable<Page> pages;
            var rootPage = pageServ.Get( rootPageGuid );
            if ( rootPage != null )
            {
                pages = pageServ.GetAllDescendents( rootPage.Id );
            }
            else
            {
                pages = pageServ.Queryable();
            }

            return pages.ToList().Where( p => Regex.IsMatch( p.PageTitle, String.Join( "\\w* ", terms.Select( t => Regex.Escape( t ) ) ), RegexOptions.IgnoreCase ) ).Select( p => p.PageTitle ).AsQueryable();
        }
All Usage Examples Of Rock.Model.PageService::GetAllDescendents