From 15d15d24fbccb9b70a305b46b71453b2ab1a720e Mon Sep 17 00:00:00 2001
From: qinjie <qinjie@163.com>
Date: 星期二, 19 十二月 2023 15:43:46 +0800
Subject: [PATCH] 提交代码

---
 Hydro.Revit/RevitNetWork.cs |   94 ++++++++++++++++++++++++++++------------------
 1 files changed, 57 insertions(+), 37 deletions(-)

diff --git a/Hydro.Revit/RevitNetWork.cs b/Hydro.Revit/RevitNetWork.cs
index a7c6387..334c72d 100644
--- a/Hydro.Revit/RevitNetWork.cs
+++ b/Hydro.Revit/RevitNetWork.cs
@@ -11,59 +11,79 @@
 {
     public class RevitNetWork : NetWork
     {
-        public  void AddJunction(JunctionViewModel junction)
+        public void AddJunction(JunctionViewModel junction)
         {
-            CheckNodesExist(junction);
-            Nodes.Add(junction);
+            if (!CheckNodesExist(junction))
+                Nodes.Add(junction);
         }
 
-        public  void AddJunctions(List<JunctionViewModel> junctions)
+        public new List<PipeViewModel> Pipes
+        {
+            get
+            {
+                var js = Links.Where(d => d is PipeViewModel);
+                return js?.Select(d => d as PipeViewModel).ToList();
+            }
+        }
+
+        public new List<NozzleViewModel> Nozzles
+        {
+            get
+            {
+                var js = Nodes.Where(d => d is NozzleViewModel);
+                return js?.Select(d => d as NozzleViewModel).ToList();
+            }
+        }
+
+        public void AddJunctions(List<JunctionViewModel> junctions)
         {
             junctions.ForEach(junction => { AddJunction(junction); });
         }
 
-        public  void AddTank(WaterTankViewModel tank)
+        public void AddTank(WaterTankViewModel tank)
         {
-            CheckNodesExist(tank);
-            Nodes.Add(tank);
+            if (!CheckNodesExist(tank))
+                Nodes.Add(tank);
         }
 
-        public  void AddTanks(List<WaterTankViewModel> tanks)
+        public List<HydrantBoxViewModel> HydrantBoxes => Nodes.Where((NodeCalcModel d) => d is HydrantBoxViewModel)?.Select((NodeCalcModel d) => d as HydrantBoxViewModel).ToList();
+
+        public void AddTanks(List<WaterTankViewModel> tanks)
         {
             tanks.ForEach(tank => { AddTank(tank); });
 
 
-            WaterTankViewModel kk=null;
-            Nodes.Select(n => (WaterTankViewModel)n).ToList().Sort(o => o.PositionJson);
-            WaterTankViewModels 
+            // WaterTankViewModel kk=null;
+            // Nodes.Select(n => (WaterTankViewModel)n).ToList().Sort(o => o.PositionJson);
+            // WaterTankViewModels 
 
-           ((WaterTankViewModel) Nodes[0]).PositionJson
+            //((WaterTankViewModel) Nodes[0]).PositionJson
         }
 
-        public  void AddPipe(PipeViewModel pipe)
+        public void AddPipe(PipeViewModel pipe)
         {
-            CheckLinksExist(pipe);
-            Links.Add(pipe);
+            if (!CheckLinksExist(pipe))
+                Links.Add(pipe);
         }
 
-        public  void AddPipes(List<PipeViewModel> pipes)
+        public void AddPipes(List<PipeViewModel> pipes)
         {
             pipes.ForEach(pipe => { AddPipe(pipe); });
         }
-        public  void AddPump(WaterPumpViewModel pump)
+        public void AddPump(WaterPumpViewModel pump)
         {
-            CheckLinksExist(pump);
-            Links.Add(pump);
+            if (!CheckLinksExist(pump))
+                Links.Add(pump);
         }
 
-        public  void AddPumps(List<WaterPumpViewModel> pumps)
+        public void AddPumps(List<WaterPumpViewModel> pumps)
         {
             pumps.ForEach(pump => { AddPump(pump); });
         }
-        public  void AddValve(ValveViewModel valve)
+        public void AddValve(ValveViewModel valve)
         {
-            CheckLinksExist(valve);
-            Links.Add(valve);
+            if (!CheckLinksExist(valve))
+                Links.Add(valve);
         }
 
         public void AddValves(List<ValveViewModel> valves)
@@ -73,35 +93,35 @@
 
         public void AddHydrantBox(HydrantBoxViewModel hydrantBox)
         {
-            CheckNodesExist(hydrantBox);
-            Nodes.Add(hydrantBox);
+            if (!CheckNodesExist(hydrantBox))
+                Nodes.Add(hydrantBox);
         }
 
-        public  void AddHydrantBoxs(List<HydrantBoxViewModel> hydrantBoxs)
+        public void AddHydrantBoxs(List<HydrantBoxViewModel> hydrantBoxs)
         {
             hydrantBoxs.ForEach(hydrantBox => { AddHydrantBox(hydrantBox); });
         }
-        
-        public  void AddNozzle(NozzleViewModel nozzle)
+
+        public void AddNozzle(NozzleViewModel nozzle)
         {
-            CheckNodesExist(nozzle);
-            Nodes.Add(nozzle);
+            if (!CheckNodesExist(nozzle))
+                Nodes.Add(nozzle);
         }
-        public  void AddNozzles(List<NozzleViewModel> nozzles)
+        public void AddNozzles(List<NozzleViewModel> nozzles)
         {
             nozzles.ForEach(nozzle => { AddNozzle(nozzle); });
         }
 
-        private void CheckNodesExist(NodeCalcModel node)
+        private bool CheckNodesExist(NodeCalcModel node)
         {
-            if (Nodes.Any(d => d.ID == node.ID))
-                throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄");
+            return Nodes.Any(d => d.ID == node.ID);
+            //   throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄");
         }
 
-        private void CheckLinksExist(LinkCalcModel link)
+        private bool CheckLinksExist(LinkCalcModel link)
         {
-            if (Links.Any(d => d.ID == link.ID))
-                throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄");
+            return Links.Any(d => d.ID == link.ID);
+            //throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄");
         }
     }
 }

--
Gitblit v1.9.3