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