Exemplo n.º 1
0
        public static void GenerateAuthItems(this ObservableCollection <AuthMenuItemMsg> dataItems, AuthMenuItemMsg parentItem, ref ObservableCollection <AuthMenuItem> menuItems, ref ObservableCollection <AuthMenuItem> navigateItems, ref ObservableCollection <AuthMenuItem> authUris)
        {
            menuItems     = new ObservableCollection <AuthMenuItem>();
            navigateItems = new ObservableCollection <AuthMenuItem>();

            if (dataItems != null)
            {
                // 1、Find matched items
                List <AuthMenuItemMsg> matchedItems = new List <AuthMenuItemMsg>();
                foreach (AuthMenuItemMsg item in dataItems)
                {
                    if ((parentItem == null && item.ParentMenuId == null) || (parentItem != null && item.ParentMenuId == parentItem.MenuId))
                    {
                        matchedItems.Add(item);
                    }
                }
                // 2、Remove matched items from original collection
                foreach (AuthMenuItemMsg item in matchedItems)
                {
                    dataItems.Remove(item);
                }
                // 3、Find children for matched items
                foreach (AuthMenuItemMsg item in matchedItems)
                {
                    ObservableCollection <AuthMenuItem> subMenuItems     = null;
                    ObservableCollection <AuthMenuItem> subNavigateItems = null;

                    GenerateAuthItems(dataItems, item, ref subMenuItems, ref subNavigateItems, ref authUris);

                    if (item.Type == MenuTypeEnum.Page || item.Type == MenuTypeEnum.Link || subMenuItems.Count > 0)
                    {
                        if (item.IsDisplay)
                        {
                            AuthMenuItem menuItem = item.ToEntity();

                            menuItem.Items = subMenuItems;

                            menuItems.Add(menuItem);
                        }
                    }

                    if (item.Type == MenuTypeEnum.Page || item.Type == MenuTypeEnum.Link || subNavigateItems.Count > 0)
                    {
                        AuthMenuItem menuItem = item.ToEntity();

                        menuItem.Items = subNavigateItems;

                        navigateItems.Add(menuItem);
                    }

                    if (item.Type == MenuTypeEnum.Category || item.Type == MenuTypeEnum.Page || item.Type == MenuTypeEnum.Link)
                    {
                        var a = item.ToEntity();
                        a.Parent = parentItem.ToEntity();
                        authUris.Add(a);
                    }
                }
            }
        }
Exemplo n.º 2
0
        ItemData GenerateMenuItemData(AuthMenuItem item)
        {
            var item1 = new ItemData {
                Name = item.Name, Url = item.URL, Id = item.Id, IsPage = (item.Type != AuthMenuItemType.Category ? true : false)
            };

            if (item.Type == AuthMenuItemType.Page)
            {
                MenuControlArea.MenuFlatData.Add(item1);
            }
            if (item.Items != null)
            {
                item1.SubItems = new List <ItemData>();
                foreach (var subItem in item.Items)
                {
                    item1.SubItems.Add(GenerateMenuItemData(subItem));
                }
            }
            return(item1);
        }
Exemplo n.º 3
0
        public static AuthMenuItem ToEntity(this AuthMenuItemMsg msg)
        {
            AuthMenuItem entity = null;

            if (msg != null)
            {
                entity = new AuthMenuItem()
                {
                    Id          = msg.MenuId.ToString(),
                    Name        = msg.DisplayName,
                    Description = msg.Description,
                    IconStyle   = msg.IconStyle,
                    IsDisplay   = msg.IsDisplay,
                    URL         = msg.LinkPath,
                    Type        = msg.Type.ToEntity(),
                    AuthKey     = msg.AuthKey
                };
            }

            return(entity);
        }
Exemplo n.º 4
0
        private static string FindParentName(AuthMenuItem menuItem)
        {
            AuthMenuItem current = menuItem.Parent == null ? menuItem : menuItem.Parent;

            if (current.Parent == null)
            {
                foreach (var item in s_list)
                {
                    if (current.Id == item.Id)
                    {
                        current = item.Parent;
                        break;
                    }
                }
            }
            if (current != null)
            {
                return(current.Name);
            }
            else
            {
                return("");
            }
        }
Exemplo n.º 5
0
 private void GetNavigateItems(ref ObservableCollection <AuthMenuItem> list, ObservableCollection <AuthMenuItem> items, AuthMenuItem parent)
 {
     foreach (var authMenuItem in items)
     {
         authMenuItem.Parent = parent;
         if (authMenuItem.Type == AuthMenuItemType.Page)
         {
             list.Add(authMenuItem);
         }
         if (authMenuItem.Items != null && authMenuItem.Items.Count > 0)
         {
             GetNavigateItems(ref list, authMenuItem.Items, authMenuItem);
         }
     }
 }