private static IEnumerable <IPublishedContent> ItemsByXPath(XPathExpression xpath, XPathVariable[] vars, IPublishedCache cache) { var doc = cache.GetByXPath(xpath, vars); return(doc); }
/// <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); }