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