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