private static IEnumerable <IPublishedContent> ItemsByXPath(XPathExpression xpath, XPathVariable[] vars,
                                                                    IPublishedCache cache)
        {
            var doc = cache.GetByXPath(xpath, vars);

            return(doc);
        }
Beispiel #2
0
        /// <summary>
        /// Creates an <see cref="IEnumerable{PublishedSearchResult}" /> containing all content from the <paramref name="cache" />.
        /// </summary>
        /// <param name="results">The search results.</param>
        /// <param name="cache">The cache to fetch the content from.</param>
        /// <returns>
        /// An <see cref="IEnumerable{PublishedSearchResult}" /> containing all content.
        /// </returns>
        /// <exception cref="ArgumentNullException">cache</exception>
        /// <remarks>
        /// Search results are skipped if it can't be fetched from the <paramref name="cache" /> by its integer id.
        /// </remarks>
        public static IEnumerable <PublishedSearchResult> ToPublishedSearchResults(this IEnumerable <ISearchResult> results, IPublishedCache cache)
        {
            if (cache == null)
            {
                throw new ArgumentNullException(nameof(cache));
            }

            var publishedSearchResults = new List <PublishedSearchResult>();

            foreach (var result in results)
            {
                if (int.TryParse(result.Id, out var contentId) &&
                    cache.GetById(contentId) is IPublishedContent content)
                {
                    publishedSearchResults.Add(new PublishedSearchResult(content, result.Score));
                }
            }

            return(publishedSearchResults);
        }
 private static IEnumerable <IPublishedContent> ItemsAtRoot(IPublishedCache cache)
 {
     return(cache.GetAtRoot());
 }
 private IEnumerable <IPublishedContent> ItemsByIds(IPublishedCache cache, IEnumerable <Guid> ids)
 {
     return(ids.Select(eachId => ItemById(eachId, cache)).WhereNotNull());
 }
        private static IPublishedContent ItemByXPath(string xpath, XPathVariable[] vars, IPublishedCache cache)
        {
            var doc = cache.GetSingleByXPath(xpath, vars);

            return(doc);
        }
        private static IPublishedContent ItemById(Guid id, IPublishedCache cache)
        {
            var doc = cache.GetById(id);

            return(doc);
        }
 private static IEnumerable <IPublishedContent> ItemsAtRoot(IPublishedCache cache) => cache.GetAtRoot();
        public static IEnumerable <PublishedSearchResult> ToPublishedSearchResults(this IEnumerable <ISearchResult> results, IPublishedCache cache)
        {
            var list = new List <PublishedSearchResult>();

            foreach (var result in results.OrderByDescending(x => x.Score))
            {
                if (!int.TryParse(result.Id, out var intId))
                {
                    continue;                                          //invalid
                }
                var content = cache.GetById(intId);
                if (content == null)
                {
                    continue;                  // skip if this doesn't exist in the cache
                }
                list.Add(new PublishedSearchResult(content, result.Score));
            }

            return(list);
        }