protected async Task <IEnumerable <TPage> > GetPagesOfMultipleTypesAsync( IEnumerable <string> types, SiteCulture culture, Action <MultiDocumentQuery>?filter = default) { MultiDocumentQuery query = GetQueryForMultipleTypes(types, culture, filter); return((await query .GetEnumerableTypedResultAsync()) .Select(page => page as TPage) .Where(page => page != null) !); }
public virtual IEnumerable <TPageDto> GetPagesByTypeAndCulture( IEnumerable <string> types, SiteCulture culture, string cacheKey, Action <MultiDocumentQuery>?filter = default, Func <TPage, TPageDto, TPageDto>?additionalMapper = default, bool includeAttachments = default, params string[] cacheDependencies) { var cacheSettings = GetCacheSettings(cacheKey, cacheDependencies); var result = _repositoryServices.ProgressiveCache.Load(cacheSettings => GetPagesOfMultipleTypes(types, culture, filter), cacheSettings); return(MapPages(result, additionalMapper, includeAttachments)); }
private IEnumerable <KeyValuePair <SiteCulture, string> >?GetDatabaseUrlVariants(string searchPath, SiteCulture currentCulture) { var navigation = _navigationRepository.GetWholeNavigation(); var currentPageNavigationItem = GetNavigationItemByRelativeUrl(searchPath, navigation[currentCulture]); if (currentPageNavigationItem != null) { var databaseVariants = new List <KeyValuePair <SiteCulture, NavigationItem> >(); databaseVariants.Add(new KeyValuePair <SiteCulture, NavigationItem>(currentCulture, currentPageNavigationItem)); foreach (var cultureVariant in navigation.Where(cultureVariant => !cultureVariant.Key.Equals(currentCulture))) { var otherCultureNavigationItem = _navigationRepository.GetNavigationItemByNodeId(currentPageNavigationItem.NodeId, cultureVariant.Value); if (otherCultureNavigationItem != null) { databaseVariants.Add(new KeyValuePair <SiteCulture, NavigationItem>(cultureVariant.Key, otherCultureNavigationItem)); } } return(databaseVariants.Select(variant => new KeyValuePair <SiteCulture, string>(variant.Key, variant.Value.RelativeUrl !))); } return(null); }