From fd206ba4e3e792eb01898fea540d50c2fd92f364 Mon Sep 17 00:00:00 2001
From: qin <a@163.com>
Date: 星期二, 18 三月 2025 13:46:34 +0800
Subject: [PATCH] IBox封装隐藏按钮

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/00-core/CreateXhsSchemeHelper.cs |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 100 insertions(+), 1 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/00-core/CreateXhsSchemeHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/00-core/CreateXhsSchemeHelper.cs
index 60a7790..b436796 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/00-core/CreateXhsSchemeHelper.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/00-core/CreateXhsSchemeHelper.cs
@@ -1,4 +1,6 @@
-锘縩amespace HStation.WinFrmUI
+锘縰sing Yw.Model;
+
+namespace HStation.WinFrmUI
 {
     /// <summary>
     ///
@@ -6,6 +8,103 @@
     public class CreateXhsSchemeHelper
     {
 
+        /// <summary>
+        /// 鍒涘缓
+        /// </summary>
+        /// <param name="vm">閫氱敤瑙嗗浘Model</param>
+        /// <param name="feedBackMsg">淇℃伅鍙嶉</param>
+        /// <param name="feedBackProgress">杩涘害鍙嶉</param>
+        /// <returns></returns>
+        public static async Task<bool> Create(CreateXhsSchemeViewModel vm, Action<string, Color> feedBackMsg, Action<int, int> feedBackProgress)
+        {
+            var msg = string.Empty;
+            if (vm == null)
+            {
+                return false;
+            }
+
+            #region 绗竴姝� 澶嶅埗姘村姏淇℃伅
+
+            feedBackMsg?.Invoke("姝e湪鍒涘缓姘村姏淇℃伅鍓湰...", Color.Black);
+            var hydroInfoId = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.Copy(vm.HydroInfo.ID);
+            if (hydroInfoId < 1)
+            {
+                feedBackMsg?.Invoke("姘村姏淇℃伅鍓湰鍒涘缓澶辫触锛侊紒锛�", Color.Red);
+                return false;
+            }
+            feedBackMsg?.Invoke("姘村姏淇℃伅鍓湰鍒涘缓鎴愬姛銆傘�傘��", Color.Green);
+            feedBackProgress?.Invoke(100, 30);
+            vm.HydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroInfoId);
+
+            #endregion
+
+            #region 绗簩姝� 鍒涘缓鏂规
+
+            feedBackMsg?.Invoke("姝e湪鍒涘缓姘村姏鏂规...", Color.Black);
+            var schemeId = await BLLFactory<HStation.BLL.XhsScheme>.Instance.Insert(vm.Scheme);
+            if (schemeId < 1)
+            {
+                feedBackMsg?.Invoke("姘村姏鏂规鍒涘缓澶辫触锛侊紒锛�", Color.Red);
+                return true;
+            }
+            feedBackMsg?.Invoke("姘村姏鏂规鍒涘缓鎴愬姛銆傘�傘��", Color.Green);
+            feedBackProgress?.Invoke(100, 40);
+            vm.Scheme = await BLLFactory<HStation.BLL.XhsScheme>.Instance.GetByID(schemeId);
+
+            #endregion
+
+            #region 绗笁姝� 寤虹珛姘村姏鍏宠仈
+
+            feedBackMsg?.Invoke("姝e湪寤虹珛姘村姏鍏宠仈...", Color.Black);
+            var relation = new Yw.Vmo.HydroModelRelationVmo();
+            relation.ObjectType = HStation.Xhs.DataType.XhsScheme;
+            relation.ObjectID = vm.Scheme.ID;
+            relation.ModelID = vm.HydroInfo.ID;
+            relation.Purpose = Yw.Hydro.Purpose.Simulation;
+            relation.Content = null;
+            relation.SortCode = 1;
+            relation.Description = "鑷姩鐢熸垚";
+
+            relation.ID = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance.Insert(relation);
+            if (relation.ID < 1)
+            {
+                feedBackMsg?.Invoke("姘村姏鍏宠仈澶辫触锛侊紒锛�", Color.Red);
+                return true;
+            }
+            feedBackMsg?.Invoke("姘村姏鍏宠仈鎴愬姛銆傘�傘��", Color.Green);
+            feedBackProgress?.Invoke(100, 50);
+
+            #endregion
+
+            #region 绗洓姝� 鏇存柊姘村姏淇℃伅
+
+            feedBackMsg?.Invoke("姝e湪鏇存柊姘村姏淇℃伅...", Color.Black);
+            if (vm.allChangeRecordList != null && vm.allChangeRecordList.Count > 0)
+            {
+                var allParterChangeList = new List<HydroParterInfo>();
+                foreach (var changeRecord in vm.allChangeRecordList)
+                {
+                    var parter = changeRecord.ViewModel.Vmo;
+                    if (!allParterChangeList.Exists(x => x.Code == parter.Code))
+                    {
+                        allParterChangeList.Add(changeRecord.ViewModel.Vmo);
+                    }
+                }
+                var bol = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.Update(vm.HydroInfo, null, allParterChangeList, null);
+                if (!bol)
+                {
+                    feedBackMsg?.Invoke("姘村姏淇℃伅鏇存柊澶辫触锛侊紒锛�", Color.Red);
+                }
+            }
+            feedBackMsg?.Invoke("姘村姏淇℃伅鏇存柊鎴愬姛銆傘�傘��", Color.Green);
+            feedBackProgress?.Invoke(100, 100);
+            return true;
+
+
+            #endregion
+
+        }
+
 
 
     }

--
Gitblit v1.9.3