using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; namespace MECF.Framework.Common.Account.Extends { public class MenuLoader : XmlLoader { public List MenuList { get { return _Menulist; } set { _Menulist = value; } } public MenuLoader(string p_strPath) : base(p_strPath) { } protected override void AnalyzeXml() { if (this.m_xdoc != null) { List menulist = TranslateMenus(this.m_xdoc.Root); this._Menulist = menulist; } } private List TranslateMenus(XElement pElement) { List Menulist = new List(); var results = from r in pElement.Elements("menuItem") select r; foreach (var result in results) { string strMenuID = string.Empty; string strMenuViewMode = string.Empty; string strMenuResKey = string.Empty; if (!result.HasElements) { strMenuID = result.Attribute("id").Value; strMenuViewMode = result.Attribute("viewmodel").Value; strMenuResKey = result.Attribute("resKey").Value; AppMenu item = new AppMenu(strMenuID, strMenuViewMode, strMenuResKey, null); if (result.Attribute("System") != null) item.System = result.Attribute("System").Value; Menulist.Add(item); } else { strMenuID = result.Attribute("id").Value; strMenuResKey = result.Attribute("resKey").Value; List subMenuList = new List(); subMenuList = TranslateMenus(result); AppMenu item = new AppMenu(strMenuID, strMenuViewMode, strMenuResKey, subMenuList); Menulist.Add(item); } } return Menulist; } private List _Menulist = new List(); } }