public virtual string BuildUrl(MainMenuItemWrapper current, IEnumerable <MainMenuItemWrapper> items, MenuOrigin origin) { var categoryHierarchy = GetCategoryHierarchy(items, current); return(BuildUrl(current.Url, current.DisplayName, categoryHierarchy, origin)); }
/// <summary> /// Get the hierarchy of a MainMenu collection from C1 /// </summary> /// <param name="items"></param> /// <param name="currentItem"></param> /// <returns></returns> private IEnumerable <string> GetHierarchy(IEnumerable <MainMenuItemWrapper> items, MainMenuItemWrapper currentItem) { yield return(SanatizeDisplayName(currentItem.DisplayName)); while (currentItem.ParentId.HasValue) { var parent = items.First(x => x.Id.Equals(currentItem.ParentId.Value)); yield return(SanatizeDisplayName(parent.DisplayName)); currentItem = parent; } }
protected virtual NameValueCollection GetCategoryHierarchy(IEnumerable <MainMenuItemWrapper> items, MainMenuItemWrapper currentItem) { var collection = new NameValueCollection(); var hierarchy = GetHierarchy(items, currentItem).Reverse().ToArray(); return(BuildCategoryHierarchyQueryStringParameters(hierarchy)); }