MenuDetail.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using IoTIntegrationPlatform.Model.Model;
  7. namespace IoTIntegrationPlatform.Model.common
  8. {
  9. /// <summary>
  10. /// 格式化菜单
  11. /// </summary>
  12. public class MenuDetail : AdminMenu
  13. {
  14. /// <summary>
  15. /// 子菜单
  16. /// </summary>
  17. public List<MenuDetail> SubMenus { get; set; }
  18. /// <summary>
  19. /// 按钮权限
  20. /// </summary>
  21. public List<AdminMenu> Buttons { get; set; }
  22. /// <summary>
  23. /// 获取管理菜单
  24. /// </summary>
  25. /// <param name="adminMenus"></param>
  26. /// <returns></returns>
  27. public static List<MenuDetail> FromAdminMenu(IEnumerable<AdminMenu> adminMenus)
  28. {
  29. var result = new List<MenuDetail>();
  30. if (adminMenus.Any())
  31. {
  32. result = SubChilds(adminMenus, "-1");
  33. }
  34. return result;
  35. }
  36. /// <summary>
  37. ///生成菜单子级
  38. /// </summary>
  39. /// <param name="adminMenus"></param>
  40. /// <param name="parentMenuCode"></param>
  41. /// <returns></returns>
  42. public static List<MenuDetail> SubChilds(IEnumerable<AdminMenu> adminMenus, string parentMenuCode)
  43. {
  44. List<MenuDetail> result = new List<MenuDetail>();
  45. var subChilds = adminMenus.Where(m => m.ParentMenuCode == parentMenuCode);
  46. if (subChilds.Any())
  47. {
  48. foreach (var item in subChilds)
  49. {
  50. var tmp = new MenuDetail
  51. {
  52. Id = item.Id,
  53. MenuCode = item.MenuCode,
  54. MenuName = item.MenuName,
  55. ParentMenuCode = item.ParentMenuCode,
  56. IsMenu = item.IsMenu,
  57. Path = item.Path,
  58. Icon = item.Icon,
  59. PowerCode=item.PowerCode
  60. };
  61. tmp.SubMenus = SubChilds(adminMenus, item.MenuCode);
  62. result.Add(tmp);
  63. }
  64. }
  65. return result;
  66. }
  67. }
  68. }