From c0f9915265878e56e91ee97f7f8d925db1e12626 Mon Sep 17 00:00:00 2001
From: cloudflight <cloudflight@126.com>
Date: 星期六, 02 十二月 2023 18:50:45 +0800
Subject: [PATCH] 2023年12月2日_3

---
 Hydro.MapView/MapViewNetWork.cs |   62 +++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 7 deletions(-)

diff --git a/Hydro.MapView/MapViewNetWork.cs b/Hydro.MapView/MapViewNetWork.cs
index a2ae5d0..45f6ffb 100644
--- a/Hydro.MapView/MapViewNetWork.cs
+++ b/Hydro.MapView/MapViewNetWork.cs
@@ -13,12 +13,13 @@
 using static Hydro.Core.ObjectEnum;
 using Hydro.MapView.Common;
 using static Hydro.MapView.MapViewEnum;
-using Hydro.CommonBase;
+using CommonBase;
 
 namespace Hydro.MapView
 {
-    public class MapViewNetWork : NetWork
+    public partial class MapViewNetWork : NetWork
     {
+        bool use_old = false;
         public string Name;
         public NodeViewModel StartPoint { get; set; }
 
@@ -27,12 +28,12 @@
         /// <summary>
         /// 鏍稿績鎵胯浇瀛楁
         /// </summary>
-        public new List<NodeViewModel> Nodes = new List<NodeViewModel>();
+        //public new List<NodeViewModel> Nodes = new List<NodeViewModel>();
 
         /// <summary>
         /// 鏍稿績鎵胯浇瀛楁
         /// </summary>
-        public new List<LinkViewModel> Links = new List<LinkViewModel>();
+        //public new List<LinkViewModel> Links = new List<LinkViewModel>();
 
         public Dictionary<string, Dataset> dict_dataset;// = new Dictionary<string, Dataset>();
         public HashSet<string> Hash_ID;
@@ -209,6 +210,48 @@
         public List<PumpNodeViewModel> Deserialized_pumpNodes { get; set; }
 
         public List<AreaViewModel> areas = new List<AreaViewModel>();
+
+        public bool ReadFromJson(string json)
+        {
+            var net = JsonConvert.DeserializeObject<MapViewNetWork>(json);
+            //net.junctions.Clear();
+            //net.Nodes.Clear();
+            junctions = net.Deserialized_junctions;
+            tanks = net.Deserialized_tanks;
+            reservoirs = net.Deserialized_reservoirs;
+            meters = net.Deserialized_meters;
+            nozzles = net.Deserialized_nozzles;
+            pipes = net.Deserialized_pipes;
+            valves = net.Deserialized_valves;
+            valveNodes = net.Deserialized_valveNodes;
+            repeaters = net.Deserialized_repeaters;
+            pumps = net.Deserialized_pumps;
+            pumpNodes = net.Deserialized_pumpNodes;
+            StartPoint = net.StartPoint;
+            EndPoint = net.EndPoint;
+
+            return true;
+        }
+        public string WriteToJson()
+        {
+            var net = new MapViewNetWork();
+            net.Deserialized_junctions = junctions;
+            net.Deserialized_tanks = tanks;
+            net.Deserialized_reservoirs = reservoirs;
+            net.Deserialized_meters = meters;
+            net.Deserialized_nozzles = nozzles;
+            net.Deserialized_pipes = pipes;
+            net.Deserialized_valves = valves;
+            //net.Deserialized_valveNodes = valveNodes;
+            net.Deserialized_repeaters = repeaters;
+            net.Deserialized_pumps = pumps;
+            net.StartPoint = StartPoint;
+            net.EndPoint = EndPoint;
+            //net.Deserialized_pumpNodes = pumpNodes;
+            string json = JsonConvert.SerializeObject(net);
+            return json;
+        }
+
 
         public JunctionViewModel AddJunction(string ID, PointF position, float z = 0)
         {
@@ -456,7 +499,7 @@
             string DefaultString = Default.GetPreString(obj);
             int i = 0;
             string ID = obj.ID;
-            List<IBaseViewModel> objs;
+            //List<IBaseViewModel> objs;
             ID = $"{DefaultString}{i}";
             //while ((objs = MapObjects.FindAll(p0 => p0.ID == ID)).Count>1 && objs[0]!=obj)
             while (Hash_ID.Contains(ID))
@@ -640,10 +683,10 @@
         {
             get
             {
-                List<IBaseViewModel> objects = new List<IBaseViewModel>();
+                List<BaseModel> objects = new List<BaseModel>();
                 objects.AddRange(Nodes);
                 objects.AddRange(Links);
-                return objects;
+                return objects.Select(o=>(IBaseViewModel)o).ToList();
             }
         }
         public void Rename()
@@ -869,5 +912,10 @@
                 k1++;
             }
         }
+
+
+
+
+
     }
 }

--
Gitblit v1.9.3