コード例 #1
0
        public string ProductUsingCurrentCategoryPathOrCurrentCategoryOrCanonical(IProduct product, ILocalization localization)
        {
            var path = (GetLocalizedCurrentPath(localization) ?? Enumerable.Empty <ICategory>()).ToArray();

            product = _productService.Localize(product, localization);

            var    currentCategoryId = path.Select(c => c.Id).LastOrDefault();
            string productUrl;

            if (path.Any() && product.Categories.Any(c => c.Id == currentCategoryId))
            {
                productUrl = _productUrlService.GetUrlUsingCategoryPathOrCanonical(product, path);
            }
            else
            {
                var category = _categoryService.Localize(_requestService.Current.Category, localization);
                productUrl = _productUrlService.GetUrlInCategoryOrCanonical(product, category);
            }
            return(_urlFormatService.FormatUrl(_urlLocalizationService.LocalizeCatalogUrl(productUrl, localization)));
        }