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