public IEnumerable <XmlSitemapItem> BuildSitemap(SiteContext siteContext) { return(cacheService.CreateOrGet( BuildCacheKey(siteContext), () => { var predicate = PredicateBuilder.True <LuceneSearchResultItem>(); using (var context = ContentSearchManager.GetIndex(siteContext.GetIndexName()).CreateSearchContext()) { var queryable = context.GetQueryable <LuceneSearchResultItem>() .Where(predicate) .AddFilter(new SitemapFilter <LuceneSearchResultItem>(siteContext)); return queryable.GetResults().Hits.Select(x => this.ToSitemapItem(x.Document)).ToList(); } })); }