private void AddIfMissing(NavMenuTreeItem navMenuTreeItem) { if (!navMenuTreeItem.Parent.HasValue) // If no Parent it must be a Module { if (!_navMenuItems.ContainsKey(navMenuTreeItem.Id)) { Add(null, navMenuTreeItem); } else { if (navMenuTreeItem.Children != null) { foreach (var menuTreeItem in navMenuTreeItem.Children) { AddIfMissing(menuTreeItem); } } } } else { if (!_navMenuItems.ContainsKey(navMenuTreeItem.Id)) { Add(navMenuTreeItem.Parent, navMenuTreeItem); } } }
private void Add(Guid?parent, NavMenuTreeItem navMenuTreeItem) { if (parent.HasValue) { var module = _navMenuTreeItems.FirstOrDefault(item => item.Id == parent.Value); module.Children.Add(navMenuTreeItem); } else { _navMenuTreeItems.Add(navMenuTreeItem); } _navMenuItems = FlattenTree(_navMenuTreeItems); }