From ccc0d2319b71cc41f4d9d2f86dff28da918987da Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期四, 06 六月 2024 13:51:37 +0800
Subject: [PATCH] 主页菜单功能替换

---
 WinfrmUI/Hydro.MapView/MapViewNetWork.cs |   47 ++++++++++++++++++++++++++---------------------
 1 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/WinfrmUI/Hydro.MapView/MapViewNetWork.cs b/WinfrmUI/Hydro.MapView/MapViewNetWork.cs
index ae3cc22..7669540 100644
--- a/WinfrmUI/Hydro.MapView/MapViewNetWork.cs
+++ b/WinfrmUI/Hydro.MapView/MapViewNetWork.cs
@@ -18,6 +18,7 @@
 using System.Runtime.InteropServices;
 using Hydro.HydraulicOptimizer;
 using Hydro.Core;
+using System.Xml.Linq;
 
 namespace Hydro.MapView
 {
@@ -26,11 +27,11 @@
     {
         bool use_old = false;
         public string Name;
-        private LinkViewModelList _links=new LinkViewModelList();
-        public LinkViewModelList Links { get { return _links; } set { base.Links= _links = value; } }
+        private LinkViewModelList _links = new LinkViewModelList();
+        public LinkViewModelList Links { get { return _links; } set { base.Links = _links = value; } }
 
         private NodeViewModelList _nodes = new NodeViewModelList();
-        public NodeViewModelList Nodes { get { return _nodes; }set { base.Nodes = _nodes = value; } }
+        public NodeViewModelList Nodes { get { return _nodes; } set { base.Nodes = _nodes = value; } }
 
         public NodeViewModel StartPoint { get; set; }
 
@@ -254,9 +255,9 @@
             {
                 return false;
             }
-            
 
-            
+
+
         }
         public string WriteToJson()
         {
@@ -571,7 +572,7 @@
                 EndPoint = network.EndPoint;
             }
         }
-        public List<IBaseViewModel> Add(MapViewNetWork net0, PointF3D offset = null, bool isCopy = false)
+        public List<IBaseViewModel> Add(MapViewNetWork net0, PointF3D offset = null, bool isCopy = false, NodeViewModel ConnectNode = null)
         {
             if (offset == null)
             {
@@ -615,6 +616,10 @@
                 Hash_ID.Add(l.ID);
                 list.Add(l);
             });
+            if (ConnectNode != null)
+            {
+                list.Add(AddPipe(ConnectNode, net.StartPoint));
+            }
             //BuildRelation();
             return list;
         }
@@ -712,7 +717,7 @@
                 List<BaseModel> objects = new List<BaseModel>();
                 objects.AddRange(Nodes);
                 objects.AddRange(Links);
-                return objects.Select(o=>(IBaseViewModel)o).ToList();
+                return objects.Select(o => (IBaseViewModel)o).ToList();
             }
         }
         public void Rename()
@@ -731,7 +736,7 @@
         public void LoadRepeaters(int MaxLevel, dict<string, dynamic> param, Dictionary<TemplateType, bool> viewModel, bool ViewMode = true)
         {
 
-       
+
             repeaters.ForEach(r =>
             {
 
@@ -746,7 +751,7 @@
                     Add(r);
                     r.Visible = false;
                 }
-          
+
 
             });
         }
@@ -765,7 +770,7 @@
 
         // 瀹氫箟 visited 瀛楀吀璁板綍宸茶闂繃鐨勮妭鐐瑰拰寰呰闂殑鑺傜偣闃熷垪
         Dictionary<NodeViewModel, bool> visited;//= new Dictionary<Node, bool>();
-        private bool _isCalculated=false;
+        private bool _isCalculated = false;
 
         public void BFS(MapViewNetWork net, NodeViewModel startNode, Vector3 vector)
         {
@@ -804,7 +809,7 @@
 
         public List<NodeViewModel> GetNode(string node)
         {
-            return Nodes.FindAll(n => n.ID == node).Select(n=> (NodeViewModel)n).ToList();
+            return Nodes.FindAll(n => n.ID == node).Select(n => (NodeViewModel)n).ToList();
         }
 
         public List<TimePoint> Calc(string inpPath, string configPath = null)
@@ -847,7 +852,7 @@
             SetLinkFromWparam(this, list, "Velocity");
             SetLinkFromWparam(this, list, "Headloss");
 
-            Links.ForEach(l=>
+            Links.ForEach(l =>
             {
                 l.EN_HEADLOSS_MINOR = (float)Math.Round(l.MinorLoss * Math.Pow(l.EN_VELOCITY, 2) / 2 / 9.8, 4);
                 l.EN_HEADLOSS_LINE = l.EN_HEADLOSS - l.EN_HEADLOSS_MINOR;
@@ -887,10 +892,10 @@
             calcParam.setVars = new List<SetVar>();
             reservoirs.ForEach(r =>
             {
-                calcParam.setVars.Add(new SetVar (r.ID,true,(int)EpanetEnum.NodeValueType.姘存睜姘翠綅,(float)val.ObjFunctionValue));
+                calcParam.setVars.Add(new SetVar(r.ID, true, (int)EpanetEnum.NodeValueType.姘存睜姘翠綅, (float)val.ObjFunctionValue));
             });
 
-            wdnmoParam =wdo.CalcbyResult(calcParam, wdnmoParam);
+            wdnmoParam = wdo.CalcbyResult(calcParam, wdnmoParam);
             var list = wdnmoParam.ResultPoints;
             if (list == null) return list;
             list.Sort((a, b) => string.Compare(a.Key, b.Key));
@@ -1013,7 +1018,7 @@
 
     //鏋勯�犱竴涓狶ist<LinkViewModel>绫伙紝鑳藉瀹炵幇List鐨勬墍鏈夊姛鑳�
     [Serializable]
-    public class LinkViewModelList:List<LinkCalcModel>
+    public class LinkViewModelList : List<LinkCalcModel>
     {
         //List<LinkCalcModel> base;
         Dictionary<string, LinkViewModel> dict;//
@@ -1049,7 +1054,7 @@
         /// </summary>
         public void UpdateDict()
         {
-            this.dict= new Dictionary<string, LinkViewModel>();
+            this.dict = new Dictionary<string, LinkViewModel>();
             base.ForEach(link =>
             {
                 if (!dict.ContainsKey(link.ID))
@@ -1061,13 +1066,13 @@
         /// </summary>
         /// <param name="oldID"></param>
         /// <param name="newID"></param>
-        public void ChangeID(string oldID,string newID)
+        public void ChangeID(string oldID, string newID)
         {
             if (dict.ContainsKey(oldID))
             {
                 dict[oldID].ID = newID;
                 dict.Add(newID, dict[oldID]);
-                dict.Remove(oldID);                
+                dict.Remove(oldID);
             }
         }
         /// <summary>
@@ -1092,7 +1097,7 @@
                     dict.Add(link.ID, link);
             });
         }
-       
+
         public bool RemoveAt(int index)
         {
             if (index < 0 || index >= base.Count) return false;
@@ -1112,7 +1117,7 @@
             {
                 if (dict.ContainsKey(ID))
                     return dict[ID];
-                else 
+                else
                     return (LinkViewModel)base.Find(l => l.ID == ID);
             }
         }
@@ -1188,7 +1193,7 @@
     {
         //List<NodeCalcModel> base;
         Dictionary<string, NodeCalcModel> dict;//=new Dictionary<string, NodeCalcModel>();//
-        public NodeViewModelList():base()
+        public NodeViewModelList() : base()
         {
             this.dict = new Dictionary<string, NodeCalcModel>();
         }

--
Gitblit v1.9.3