コード例 #1
0
        public void UpdateDetailPageUrl(string oldUrl, string newUrl)
        {
            var widgets = _widgetBasePartService.GetAllWidgets <ProductGalleryWidgetService, ProductGalleryWidget>();
            List <ProductGalleryWidget> needUpdateWidgets = new List <ProductGalleryWidget>();

            foreach (var item in widgets)
            {
                if (item.DetailPageUrl.IsNullOrEmpty())
                {
                    continue;
                }

                if (item.DetailPageUrl.Equals(oldUrl, StringComparison.OrdinalIgnoreCase) ||
                    item.DetailPageUrl.StartsWith(oldUrl + "/", StringComparison.OrdinalIgnoreCase))
                {
                    item.DetailPageUrl = newUrl + item.DetailPageUrl.Substring(oldUrl.Length);
                    needUpdateWidgets.Add(item);
                }
            }
            if (needUpdateWidgets.Any())
            {
                _widgetBasePartService.UpdateWidgets(needUpdateWidgets.ToArray());
            }
        }