Browse Source

CmsKit - Fix parent node duplication on menu

pull/9261/head
Enis Necipoğlu 5 years ago
parent
commit
7cf9a23f44
  1. 10
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs

10
modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs

@ -34,23 +34,23 @@ namespace Volo.CmsKit.Public.Web.Menus
{ {
var applicationMenuItem = CreateApplicationMenuItem(menuItemDto); var applicationMenuItem = CreateApplicationMenuItem(menuItemDto);
context.Menu.Items.Add(applicationMenuItem); context.Menu.Items.Add(applicationMenuItem);
AddChildItems(applicationMenuItem, menuItemDto, mainMenu.Items); AddChildItems(menuItemDto, mainMenu.Items);
} }
} }
} }
} }
private void AddChildItems(ApplicationMenuItem parent, MenuItemDto menuItem, List<MenuItemDto> source) private void AddChildItems(MenuItemDto menuItem, List<MenuItemDto> source, ApplicationMenuItem parent = null)
{ {
var applicationMenuItem = CreateApplicationMenuItem(menuItem); var applicationMenuItem = CreateApplicationMenuItem(menuItem);
parent.Items.Add(applicationMenuItem); parent?.Items.Add(applicationMenuItem);
foreach (var item in source.Where(x => x.ParentId == menuItem.Id && x.IsActive)) foreach (var item in source.Where(x => x.ParentId == menuItem.Id && x.IsActive))
{ {
AddChildItems(applicationMenuItem, item, source); AddChildItems(item, source, applicationMenuItem);
} }
} }
private ApplicationMenuItem CreateApplicationMenuItem(MenuItemDto menuItem) private ApplicationMenuItem CreateApplicationMenuItem(MenuItemDto menuItem)
{ {
return new ApplicationMenuItem( return new ApplicationMenuItem(

Loading…
Cancel
Save