XmlMenuDataWrapper.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /* ==============================================================================
  2. * 功能描述:XmlMenuDataWrapper
  3. * 创 建 者:Garrett
  4. * 创建日期:2018/9/18 8:53:36
  5. * ==============================================================================*/
  6. using System;
  7. using System.Collections.Generic;
  8. using System.IO;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using SAGA.DotNetUtils;
  13. using SAGA.DotNetUtils.MBI;
  14. namespace SAGA.RevitMenu.Configuration
  15. {
  16. /// <summary>
  17. /// XmlMenuDataWrapper
  18. /// </summary>
  19. class XmlMenuDataWrapper
  20. {
  21. /// <summary>
  22. /// 跟据用户权限,对菜单数据进行修饰
  23. /// </summary>
  24. /// <param name="tabDatas"></param>
  25. public static void Wrapper(TszTabData[] tabDatas)
  26. {
  27. var showMenusList = ReadUserMeunPermissionData(Path.Combine(OutReachConst.MBITempSettingPath,OutReachConst.UserMenuPermission));
  28. foreach (var tabData in tabDatas) {
  29. foreach (var panelData in tabData.Panels) {
  30. foreach (var buttonData in panelData.Buttons) {
  31. if (buttonData.ClassName.IsNotNullEmpty())
  32. {
  33. buttonData.Visible = showMenusList.Contains(buttonData.ClassName);
  34. }
  35. }
  36. }
  37. }
  38. }
  39. /// <summary>
  40. /// 读取用户权限数据
  41. /// </summary>
  42. /// <param name="fileName"></param>
  43. /// <returns></returns>
  44. private static List<string> ReadUserMeunPermissionData(string path)
  45. {
  46. List < string > list=new List<string>();
  47. if (File.Exists(path))
  48. {
  49. using (StreamReader sr = new StreamReader(path, Encoding.UTF8))
  50. {
  51. String line;
  52. while ((line = sr.ReadLine()) != null)
  53. {
  54. //var mode = line.JsonToObject<string>();
  55. var mode = line;
  56. list.Add(mode);
  57. }
  58. }
  59. }
  60. return list;
  61. }
  62. }
  63. }