MenuLoader.cs 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Xml.Linq;
  7. namespace MECF.Framework.Common.Account.Extends
  8. {
  9. public class MenuLoader : XmlLoader
  10. {
  11. public List<AppMenu> MenuList
  12. {
  13. get { return _Menulist; }
  14. set { _Menulist = value; }
  15. }
  16. public MenuLoader(string p_strPath)
  17. : base(p_strPath)
  18. {
  19. }
  20. protected override void AnalyzeXml()
  21. {
  22. if (this.m_xdoc != null)
  23. {
  24. List<AppMenu> menulist = TranslateMenus(this.m_xdoc.Root);
  25. this._Menulist = menulist;
  26. }
  27. }
  28. private List<AppMenu> TranslateMenus(XElement pElement)
  29. {
  30. List<AppMenu> Menulist = new List<AppMenu>();
  31. var results = from r in pElement.Elements("menuItem") select r;
  32. foreach (var result in results)
  33. {
  34. string strMenuID = string.Empty;
  35. string strMenuViewMode = string.Empty;
  36. string strMenuResKey = string.Empty;
  37. if (!result.HasElements)
  38. {
  39. strMenuID = result.Attribute("id").Value;
  40. strMenuViewMode = result.Attribute("viewmodel").Value;
  41. strMenuResKey = result.Attribute("resKey").Value;
  42. AppMenu item = new AppMenu(strMenuID, strMenuViewMode, strMenuResKey, null);
  43. if (result.Attribute("isHide") != null)
  44. item.IsHide = bool.Parse(result.Attribute("isHide").Value);
  45. if (result.Attribute("System") != null)
  46. item.System = result.Attribute("System").Value;
  47. if (result.Attribute("parentKey") != null)
  48. item.ParentKey = result.Attribute("parentKey").Value;
  49. if (result.Attribute("AlarmModule") != null)
  50. item.AlarmModule = result.Attribute("AlarmModule").Value;
  51. Menulist.Add(item);
  52. if (result.Attribute("type") != null)
  53. item.Type = result.Attribute("type").Value;
  54. }
  55. else
  56. {
  57. strMenuID = result.Attribute("id").Value;
  58. strMenuResKey = result.Attribute("resKey").Value;
  59. List<AppMenu> subMenuList = new List<AppMenu>();
  60. subMenuList = TranslateMenus(result);
  61. AppMenu item = new AppMenu(strMenuID, strMenuViewMode, strMenuResKey, subMenuList);
  62. if (result.Attribute("isHide") != null)
  63. item.IsHide = bool.Parse(result.Attribute("isHide").Value);
  64. if (result.Attribute("System") != null)
  65. item.System = result.Attribute("System").Value;
  66. if (result.Attribute("parentKey") != null)
  67. item.ParentKey = result.Attribute("parentKey").Value;
  68. if (result.Attribute("AlarmModule") != null)
  69. item.AlarmModule = result.Attribute("AlarmModule").Value;
  70. if (result.Attribute("type") != null)
  71. item.Type = result.Attribute("type").Value;
  72. Menulist.Add(item);
  73. }
  74. }
  75. return Menulist;
  76. }
  77. private List<AppMenu> _Menulist = new List<AppMenu>();
  78. }
  79. }