示例#1
0
        private List <UrlInfo> GetWebsiteUrls(BaseProduct baseProduct, WebSite webSite)
        {
            var urls     = new List <UrlInfo>();
            var variants = baseProduct.GetPublishedVariants(webSite.ID).ToList();

            foreach (var baseProductCategoryLink in baseProduct.CategoryLinks)
            {
                var category       = _categoryService.Get(baseProductCategoryLink.CategorySystemId);
                var baseProductUrl = baseProduct.GetUrl(webSite.ID, true, category);
                if (!string.IsNullOrEmpty(baseProductUrl))
                {
                    urls.Add(new UrlInfo
                    {
                        Id  = baseProduct.Id,
                        Url = baseProductUrl
                    });
                }

                foreach (var variant in variants)
                {
                    var variantUrl = variant.GetUrl(webSite.ID, true, category);
                    if (string.IsNullOrEmpty(variantUrl))
                    {
                        continue;
                    }

                    if (urls.Any(u => u.Url.Equals(variantUrl)))
                    {
                        continue;
                    }

                    urls.Add(new UrlInfo
                    {
                        Id  = variant.Id,
                        Url = variantUrl
                    });
                }
            }

            return(urls);
        }