WinMachineRoom.xaml.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Windows;
  5. using System.Windows.Controls;
  6. using System.Windows.Media;
  7. using CEFSharpWPF;
  8. using Newtonsoft.Json.Linq;
  9. using SAGA.GplotRelationComputerManage;
  10. using SAGA.Models;
  11. using SAGA.RevitUtils;
  12. using SAGA.RevitUtils.Windows;
  13. namespace SAGA.GplotDrawData.View
  14. {
  15. /// <summary>
  16. /// WinMachineRoom.xaml 的交互逻辑
  17. /// </summary>
  18. public partial class WinMachineRoom : WinBase
  19. {
  20. public WinMachineRoom()
  21. {
  22. InitializeComponent();
  23. ucShowElement.RegisterJsObject("wpfEvent", this);
  24. }
  25. protected override void OnLoaded(object sender, RoutedEventArgs e)
  26. {
  27. base.OnLoaded(sender, e);
  28. InitTreeNode();
  29. }
  30. #region 事件相关
  31. private void RootNode_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
  32. {
  33. if (TreeRootNode.SelectedItem is DataNode ln)
  34. {
  35. Draw(ln.GetData<MachineRoomDrawRecord>());
  36. }
  37. }
  38. #endregion
  39. #region 数据相关处理
  40. /// <summary>
  41. /// 获取平面绘图数据
  42. /// </summary>
  43. /// <returns></returns>
  44. private List<List<MachineRoomDrawRecord>> GetMachineRoomDrawData()
  45. {
  46. List<List<MachineRoomDrawRecord>> datas = new List<List<MachineRoomDrawRecord>>();
  47. List<string> relationTypes = RelationTypeManager.GetSystemRelationTypeNames();
  48. foreach (string relationType in relationTypes)
  49. {
  50. LoadMachineRoomDrawData loadData = new LoadMachineRoomDrawData(relationType);
  51. loadData.LoadData();
  52. datas.Add(loadData.MachineRoomDrawRecords);
  53. }
  54. return datas;
  55. }
  56. /// <summary>
  57. /// 初始化树形结构显示
  58. /// </summary>
  59. private void InitTreeNode()
  60. {
  61. try
  62. {
  63. List<List<MachineRoomDrawRecord>> drawDatas = GetMachineRoomDrawData();
  64. List<DataNode> treeDataSource = new List<DataNode>();
  65. foreach (var drawData in drawDatas)
  66. {
  67. foreach (var drawRecord in drawData)
  68. {
  69. if (!drawRecord.NodePaths.Any())
  70. continue;
  71. var relationNode = treeDataSource.FirstOrDefault(d => d.EName == drawRecord.RelationName);
  72. if (relationNode == null)
  73. {
  74. relationNode = new DataNode(drawRecord.RelationName);
  75. treeDataSource.Add(relationNode);
  76. }
  77. var recordNode = new DataNode(drawRecord.FloorName);
  78. recordNode.SetData(drawRecord);
  79. relationNode.Childrens.Add(recordNode);
  80. }
  81. }
  82. this.TreeRootNode.ItemsSource = treeDataSource;
  83. if (treeDataSource.Count == 0)
  84. {
  85. this.Content = CommonControlUtils.CreatMaskElement("未发现计算数据");
  86. }
  87. }
  88. catch (Exception ex)
  89. {
  90. MessageShow.Show(ex);
  91. }
  92. }
  93. private void Draw(MachineRoomDrawRecord record)
  94. {
  95. if (record == null)
  96. return;
  97. MachineRoomGraphView view = new MachineRoomGraphView();
  98. var db = view.CreateDb(record);
  99. var jobject = db.CreateJObjectGroup();
  100. jobject["Id"] = record.FloorName + "-"+ record.BuildingTime;
  101. ConstData.ResponseData = jobject;
  102. //ucShowElement.Show(WebGplotSettings.GplotUrl);
  103. ucShowElement.Show(WebGplotSettings.MachineRoomUrl);
  104. }
  105. public void SaveStr(string path)
  106. {
  107. //MessageBox.Show(path ?? "没有数据");
  108. var data = new JObject();//JObject.Parse(path);
  109. data.Add("id", "sdada");
  110. DataServerUtil.Current.SaveData("dd",data);
  111. if (DataServerUtil.Current.GetFile("dd").Exists())
  112. {
  113. var cc= DataServerUtil.Current.LoadData<JObject>("dd");
  114. }
  115. }
  116. #endregion
  117. }
  118. }