From a2f11a5e60bb577fb793949191793a59953e236b Mon Sep 17 00:00:00 2001
From: Shuxia Ning <NingShuxia0927@outlook.com>
Date: 星期一, 02 十二月 2024 15:22:44 +0800
Subject: [PATCH] Name 属性

---
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-extensions/HydroModelInfoExtensions.cs |   64 +++++++++++++++++++++++++++++--
 1 files changed, 59 insertions(+), 5 deletions(-)

diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-extensions/HydroModelInfoExtensions.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-extensions/HydroModelInfoExtensions.cs
index 9dc99eb..307d841 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-extensions/HydroModelInfoExtensions.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-extensions/HydroModelInfoExtensions.cs
@@ -1,8 +1,5 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+锘縰sing Yw.EPAnet;
+using Yw.Hydro;
 using Yw.Model;
 
 namespace Yw.WinFrmUI
@@ -25,6 +22,63 @@
             return allVisualList?.ToDictionary(x => x.Code);
         }
 
+        /// <summary>
+        /// 淇
+        /// </summary>
+        public static bool Repair(this Yw.Model.HydroModelInfo hydroInfo, out string msg)
+        {
+            msg = string.Empty;
+            if (hydroInfo == null)
+            {
+                return false;
+            }
+
+            var checkResult = hydroInfo.Check();
+            if (!checkResult.Succeed)
+            {
+                msg = "妫�鏌ュけ璐ュ鑷存棤娉曡繘琛岃瘯绠楋紝鍋滄绠$綉淇锛�";
+                return false;
+            }
+
+            var calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.Simple);
+            if (!calcuResult.Succeed)
+            {
+                msg = "璇曠畻澶辫触锛屽仠姝㈢缃戜慨澶嶏紒";
+                return false;
+            }
+
+            var allLinkList = hydroInfo.GetAllLinks();
+            if (allLinkList != null && allLinkList.Count < 1)
+            {
+                msg = "妯″瀷涓湭鍖呭惈绠℃淇℃伅锛屽仠姝㈢缃戜慨澶嶏紒";
+                return false;
+            }
+
+            int count = 0;
+            foreach (var link in allLinkList)
+            {
+                var calcuLink = calcuResult.LinkList?.Find(x => x.Code == link.Code);
+                if (calcuLink == null)
+                {
+                    continue;
+                }
+                if (!calcuLink.CalcuFlow.HasValue)
+                {
+                    continue;
+                }
+                if (calcuLink.CalcuFlow.Value < 0)
+                {
+                    var tempCode = link.StartCode;
+                    link.StartCode = link.EndCode;
+                    link.EndCode = tempCode;
+                    count++;
+                }
+            }
+
+            msg = $"淇瀹屾垚锛屽叡淇绠℃({count})涓紒";
+            return true;
+        }
+
 
     }
 }

--
Gitblit v1.9.3