From 145dcc3a9ed1c3bcbc01c8da2b341aaa6ee5dbd2 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期一, 14 十月 2024 10:37:44 +0800
Subject: [PATCH] 优化link连接颜色

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs |   44 +++++++++++++++++++++++++++-----------------
 1 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
index 865c0e5..1e4b136 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -1,5 +1,7 @@
 锘縢lobal using Yw.EPAnet;
+using DevExpress.XtraMap.Drawing;
 using NetTaste;
+using Org.BouncyCastle.Crypto.Engines;
 
 namespace HStation.WinFrmUI
 {
@@ -108,8 +110,6 @@
         //bimface鎺т欢
         private XhsProjectSimulationBimfaceCtrl _bimfaceCtrl = null;
 
-
-
         //璁剧疆Bimface杩炴帴棰滆壊
         private async void SetBimfaceLinkColor()
         {
@@ -117,48 +117,58 @@
             {
                 return;
             }
-            var elementIds = new List<string>();
             if (_parter != null)
             {
-                if (_parter is Yw.Model.HydroLinkInfo linker)
+                if (_parter is Yw.Model.HydroLinkInfo link)
                 {
-                    var allParterList = _hydroInfo.GetAllParters();
-                    var allLinkerList = _hydroInfo.GetAllLinks();
-                    var startParter = allParterList?.Find(x => x.Code == linker.StartCode);
+                    await _bimfaceCtrl?.RestoreLinkComponentsColor();
+
+                    var allVisualList = _hydroInfo.GetAllVisuals();
+                    var allLinkList = _hydroInfo.GetAllLinks();
+                    var startParter = allVisualList?.Find(x => x.Code == link.StartCode);
                     if (startParter != null)
                     {
+                        var startElementIds = new List<string>();
                         if (startParter.GetType() == typeof(Yw.Model.HydroJunctionInfo))
                         {
-                            var startLinkList = allLinkerList?.Where(x => x.StartCode == startParter.Code || x.EndCode == startParter.Code).ToList();
-                            if (startLinkList != null)
+                            var startLinkList = allLinkList?.Where(x => x.StartCode == startParter.Code || x.EndCode == startParter.Code && x.Code != _parter.Code).ToList();
+                            if (startLinkList != null && startLinkList.Count > 0)
                             {
-                                elementIds.AddRange(startLinkList.Select(x => x.Code).Where(x => x != _parter.Code));
+                                startElementIds.AddRange(startLinkList.Select(x => x.Code));
                             }
                         }
                         else
                         {
-                            elementIds.Add(linker.StartCode);
+                            startElementIds.Add(startParter.Code);
+                        }
+                        if (startElementIds.Count > 0)
+                        {
+                            await _bimfaceCtrl?.SetLinkStartComponentsColor(startElementIds);
                         }
                     }
-                    var endParter = allParterList?.Find(x => x.Code == linker.EndCode);
+                    var endParter = allVisualList?.Find(x => x.Code == link.EndCode);
                     if (endParter != null)
                     {
+                        var endElementIds = new List<string>();
                         if (endParter.GetType() == typeof(Yw.Model.HydroJunctionInfo))
                         {
-                            var endLinkList = allLinkerList?.Where(x => x.StartCode == endParter.Code || x.EndCode == endParter.Code).ToList();
-                            if (endLinkList != null)
+                            var endLinkList = allLinkList?.Where(x => x.StartCode == endParter.Code || x.EndCode == endParter.Code && x.Code != _parter.Code).ToList();
+                            if (endLinkList != null && endLinkList.Count > 0)
                             {
-                                elementIds.AddRange(endLinkList.Select(x => x.Code).Where(x => x != _parter.Code));
+                                endElementIds.AddRange(endLinkList.Select(x => x.Code));
                             }
                         }
                         else
                         {
-                            elementIds.Add(linker.EndCode);
+                            endElementIds.Add(endParter.Code);
+                        }
+                        if (endElementIds.Count > 0)
+                        {
+                            await _bimfaceCtrl?.SetLinkEndComponentsColor(endElementIds);
                         }
                     }
                 }
             }
-            await _bimfaceCtrl?.SetLinkComponentsColor(elementIds);
         }
 
         #endregion

--
Gitblit v1.9.3