123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using MECF.Framework.Common.Account.Extends;
- namespace MECF.Framework.UI.Client.ClientBase
- {
- public class MenuManager
- {
- public List<AppMenu> MenuItems { get; private set; }
-
- #region Operation
- public void LoadMenu(List<AppMenu> menuitems)
- {
- List < AppMenu > removeList = new List<AppMenu>();
- foreach (AppMenu menuitem in menuitems)
- {
- if (!string.IsNullOrEmpty(menuitem.System) && menuitem.System != "System")
- {
- if (ModuleManager.ModuleInfos.ContainsKey(menuitem.System) &&
- !ModuleManager.ModuleInfos[menuitem.System].IsInstalled)
- {
- removeList.Add(menuitem);
- }
- }
- if (menuitem.MenuItems != null)
- {
- for (int i = menuitem.MenuItems.Count - 1; i >= 0; i--)
- {
- var submenuitem = menuitem.MenuItems[i];
- submenuitem.Parent = menuitem;
- if (submenuitem.Permission == 1) //remove menu if permission is "None"
- menuitem.MenuItems.Remove(submenuitem);
- if (!string.IsNullOrEmpty(submenuitem.System) && submenuitem.System != "System")
- {
- if (ModuleManager.ModuleInfos.ContainsKey(submenuitem.System) &&
- !ModuleManager.ModuleInfos[submenuitem.System].IsInstalled)
- {
- menuitem.MenuItems.Remove(submenuitem);
- }
- }
- }
- }
- }
- foreach (var appMenu in removeList)
- {
- menuitems.Remove(appMenu);
- }
- this.MenuItems = menuitems;
- }
- public void FilterMenus(List<string> pSystems)
- {
- if (pSystems == null || this.MenuItems == null)
- return;
- foreach (AppMenu menuitem in this.MenuItems)
- {
- if (menuitem.MenuItems != null)
- {
- for (int i = menuitem.MenuItems.Count - 1; i >= 0; i--)
- {
- var submenuitem = menuitem.MenuItems[i];
- //filter
- }
- }
- }
- }
- private bool IsExist(List<string> pSource, string pMatch)
- {
- foreach (var item in pSource)
- {
- if (pMatch.IndexOf(item) >= 0)
- return true;
- }
- return false;
- }
- public List<AppMenu> GetAllClone()
- {
- if (this.MenuItems == null)
- return null;
- List<AppMenu> cloneList = new List<AppMenu>();
- foreach (var item in this.MenuItems)
- {
- cloneList.Add((AppMenu)item.Clone(item.Parent));
- }
- return cloneList;
- }
- #endregion
- }
- }
|