From 7ddeb60ea935a8e1cfb2e835f7ba6898879d5716 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期二, 05 十一月 2024 13:03:06 +0800 Subject: [PATCH] 增加属性相关更新方法 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs | 266 +++++++++++++++++++++++++++-------------------------- 1 files changed, 135 insertions(+), 131 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs index b7e3e54..9899f2e 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs @@ -12,14 +12,14 @@ { InitializeComponent(); - this.hydroParterPropertyCtrl1.ViewCurveEvent += HydroParterPropertyCtrl1_ViewCurveEvent; - this.hydroParterPropertyCtrl1.SetCurveEvent += HydroParterPropertyCtrl1_SetCurveEvent; - this.hydroParterPropertyCtrl1.SetPatternEvent += HydroParterPropertyCtrl1_SetPatternEvent; this.hydroParterPropertyCtrl1.PropertyValueChangedEvent += HydroParterPropertyCtrl1_PropertyValueChangedEvent; this.hydroParterPropertyCtrl1.PropertyValueChangingEvent += HydroParterPropertyCtrl1_PropertyValueChangingEvent; this.hydroParterPropertyCtrl1.MatchingDbEvent += HydroParterPropertyCtrl1_MatchingDbEvent; + this.hydroParterPropertyCtrl1.SetCurveEvent += HydroParterPropertyCtrl1_SetCurveEvent; + this.hydroParterPropertyCtrl1.SetPatternEvent += HydroParterPropertyCtrl1_SetPatternEvent; this.hydroParterPropertyCtrl1.BlinkLinkParterEvent += HydroParterPropertyCtrl1_BlinkLinkParterEvent; } + /// <summary> /// 寮鸿皟杩炴帴缁勪欢浜嬩欢 @@ -28,16 +28,35 @@ /// </summary> public event Action<string, string> BlinkLinkParterEvent; + /// <summary> + /// 灞炴�у�兼敼鍙樹簨浠� + /// </summary> + public event Func<Yw.Model.HydroParterInfo, bool> PropertyValueChangedEvent; + //姘村姏淇℃伅鏂规硶 private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; + private Func<List<HydroCalcuResult>> _allHydroCalcuResultListFunc = null; /// <summary> /// 鍒濆鍖栨暟鎹� /// </summary> - public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc) + public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc, Func<List<HydroCalcuResult>> allHydroCalcuResultListFunc) { _hydroInfoFunc = hydroInfoFunc; + _allHydroCalcuResultListFunc = allHydroCalcuResultListFunc; this.hydroParterPropertyCtrl1.InitialData(hydroInfoFunc); + } + + //鑾峰彇姘村姏淇℃伅 + private Yw.Model.HydroModelInfo GetHydroInfo() + { + var hydroInfo = _hydroInfoFunc?.Invoke(); + if (hydroInfo == null) + { + this.hydroParterPropertyCtrl1.SelectedObject = null; + return default; + } + return hydroInfo; } /// <summary> @@ -45,16 +64,14 @@ /// </summary> public void SelectParter(long id) { - var hydroInfo = _hydroInfoFunc?.Invoke(); + var hydroInfo = GetHydroInfo(); if (hydroInfo == null) { - this.hydroParterPropertyCtrl1.SelectedObject = null; return; } var allParterList = hydroInfo.GetAllParters(); - var parter = allParterList.Find(x => x.ID == id); - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); - this.hydroParterPropertyCtrl1.SelectedObject = vm; + var parter = allParterList?.Find(x => x.ID == id); + SelectParter(parter); } /// <summary> @@ -62,105 +79,102 @@ /// </summary> public void SelectParter(string code) { - var hydroInfo = _hydroInfoFunc?.Invoke(); + var hydroInfo = GetHydroInfo(); if (hydroInfo == null) { - this.hydroParterPropertyCtrl1.SelectedObject = null; return; } var allParterList = hydroInfo.GetAllParters(); - var parter = allParterList.Find(x => x.Code == code); - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); - this.hydroParterPropertyCtrl1.SelectedObject = vm; + var parter = allParterList?.Find(x => x.Code == code); + SelectParter(parter); } /// <summary> /// 閫夋嫨缁勪欢 /// </summary> - public void SelectParter(Yw.Model.HydroParterInfo parter, List<Yw.Model.HydroParterInfo> allParterList) + public void SelectParter(Yw.Model.HydroParterInfo parter) { - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); - this.hydroParterPropertyCtrl1.SelectedObject = vm; + var hydroInfo = GetHydroInfo(); + if (hydroInfo == null) + { + return; + } + if (parter != null) + { + var vm = Yw.WinFrmUI.HydroParterViewModelBuilder.CreateViewModel(parter, hydroInfo); + this.hydroParterPropertyCtrl1.SelectedObject = vm; + } } /// <summary> - /// 鏇存柊璁$畻灞炴�� + /// 鍙栨秷閫夋嫨缁勪欢 /// </summary> - public void UpdateCalcuProperty(Yw.WinFrmUI.IHydroCalcuResult rhs) + public void CancelSelectParter() + { + this.hydroParterPropertyCtrl1.SelectedObject = null; + } + + /// <summary> + /// 鏇存柊灞炴�� + /// </summary> + public void UpdateProperty() { var vm = this.hydroParterPropertyCtrl1.SelectedObject; if (vm == null) { return; } - vm.UpdateCalcuProperty(rhs); + vm.UpdateProperty(); this.hydroParterPropertyCtrl1.UpdateRows(); } - //鏌ョ湅鏇茬嚎 - private void HydroParterPropertyCtrl1_ViewCurveEvent(Yw.Model.HydroParterInfo parterInfo, string curveType) + /// <summary> + /// 鏇存柊璁$畻灞炴�� + /// </summary> + public void UpdateCalcuProperty(Yw.WinFrmUI.HydroCalcuResult calcuResult) + { + if (calcuResult == null) + { + return; + } + var vm = this.hydroParterPropertyCtrl1.SelectedObject; + if (vm == null) + { + return; + } + vm.UpdateCalcuProperty(calcuResult); + this.hydroParterPropertyCtrl1.UpdateRows(); + } + + //閫夋嫨鏇茬嚎 + private bool HydroParterPropertyCtrl1_SetCurveEvent(HydroParterViewModel propViewModel, string curveType) { var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { - return; + return false; } switch (curveType) { case Yw.WinFrmUI.HydroCurve.Pump: { - var pumpInfo = parterInfo as Yw.Model.HydroPumpInfo; - var curveqh = hydroInfo.Curves?.Find(x => x.Code == pumpInfo.CurveQH); - if (curveqh == null) - { - return; - } - var pumpId = string.IsNullOrEmpty(pumpInfo.DbId) ? 0 : Convert.ToInt64(pumpInfo.DbId); - var curveId = string.IsNullOrEmpty(curveqh.DbId) ? 0 : Convert.ToInt64(curveqh.DbId); - var speedRatio = pumpInfo.SpeedRatio; - var dlg = new PumpPerform2dViewDlg(); - dlg.SetBindingData(pumpId, curveId, speedRatio); - dlg.ShowDialog(); - } - break; - - case Yw.WinFrmUI.HydroCurve.Valve: - { - } - break; - - default: break; - } - } - - //閫夋嫨鏇茬嚎 - private bool HydroParterPropertyCtrl1_SetCurveEvent(HydroParterPropertyViewModel propViewModel, string curveType) - { - switch (curveType) - { - case Yw.WinFrmUI.HydroCurve.Pump: - { - var hydroInfo = _hydroInfoFunc?.Invoke(); - if (hydroInfo == null) - { - return false; - } var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == propViewModel.Code); - - var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo); - var dlg = new PumpSingleMatchingDlg(); - dlg.SetBindingData(input); - dlg.ReloadDataEvent += (rhs) => + if (pumpInfo == null) { - var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); + break; + } + var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo, _allHydroCalcuResultListFunc?.Invoke()); + var dlg = new SinglePumpAnalyDlg(); + dlg.SetBindindData(input); + dlg.ReloadDataEvent += (output) => + { + var bol = AssetsMatchingParasHelper.Apply(hydroInfo, output); if (bol) { - TipFormHelper.ShowSucceed("鍖归厤鎴愬姛"); + propViewModel.UpdateProperty(); + this.hydroParterPropertyCtrl1.UpdateRows(); } - else - { - TipFormHelper.ShowWarn("鍖归厤澶辫触"); - } + return bol; }; dlg.ShowDialog(); return true; @@ -191,7 +205,7 @@ } //閫夋嫨妯″紡 - private bool HydroParterPropertyCtrl1_SetPatternEvent(HydroParterPropertyViewModel propViewModel, string patternType) + private bool HydroParterPropertyCtrl1_SetPatternEvent(HydroParterViewModel propViewModel, string patternType) { switch (patternType) { @@ -211,122 +225,112 @@ } //灞炴�у彂鐢熸敼鍙� - private bool HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterPropertyViewModel obj) + private bool HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterViewModel parterViewModel) { - return false; + if (parterViewModel == null) + { + return false; + } + if (this.PropertyValueChangedEvent == null) + { + return false; + } + return this.PropertyValueChangedEvent.Invoke(parterViewModel.Vmo); } //灞炴�ф鍦ㄥ彂鐢熸敼鍙� - private bool HydroParterPropertyCtrl1_PropertyValueChangingEvent(HydroParterPropertyViewModel arg) + private bool HydroParterPropertyCtrl1_PropertyValueChangingEvent(HydroParterViewModel arg) { return false; } //鍖归厤Db - private void HydroParterPropertyCtrl1_MatchingDbEvent(Yw.Model.HydroParterInfo parter) + private bool HydroParterPropertyCtrl1_MatchingDbEvent(HydroParterViewModel propertyViewModel) { - if (parter == null) + var bol = false; + if (propertyViewModel == null) { - return; + return bol; } var hydroInfo = _hydroInfoFunc?.Invoke(); if (hydroInfo == null) { - return; + return bol; } - switch (parter.Catalog) + var catalog = Yw.WinFrmUI.HydroParterCatalogHelper.GetCatalogCode(propertyViewModel.Catalog); + switch (catalog) { case Yw.Hydro.ParterCatalog.Pump://姘存车 { - var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == parter.Code); - var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo); + var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == propertyViewModel.Code); + if (pumpInfo == null) + { + break; + } - if (!string.IsNullOrEmpty(pumpInfo.DbId)) + var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo, _allHydroCalcuResultListFunc?.Invoke()); + var dlg = new PumpSingleMatchingDlg(); + dlg.SetBindingData(input); + dlg.ReloadDataEvent += (output) => { - var detailDlg = new PumpFullInfoViewDlg(); - detailDlg.SetBindindData(input); - detailDlg.ShowDialog(); - } - else - { - var dlg = new PumpSingleMatchingDlg(); - dlg.SetBindingData(input); - dlg.ReloadDataEvent += (rhs) => + bol = AssetsMatchingParasHelper.Apply(hydroInfo, output); + if (bol) { - var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); - if (bol) - { - TipFormHelper.ShowSucceed("鍖归厤鎴愬姛"); - } - else - { - TipFormHelper.ShowWarn("鍖归厤澶辫触"); - } - }; - dlg.ShowDialog(); - } + propertyViewModel.UpdateProperty(); + } + }; + dlg.ShowDialog(); } break; - case Yw.Hydro.ParterCatalog.Valve://闃�闂� { - var valveInfo = hydroInfo.Valves?.Find(x => x.Code == parter.Code); - var input = AssetsMatchingParasHelper.Create(hydroInfo, valveInfo); + var valveInfo = hydroInfo.Valves?.Find(x => x.Code == propertyViewModel.Code); + if (valveInfo == null) + { + break; + } + var input = AssetsMatchingParasHelper.Create(hydroInfo, valveInfo, _allHydroCalcuResultListFunc?.Invoke()); var dlg = new ValveSingleMatchingDlg(); dlg.SetBindingData(input); dlg.ReloadDataEvent += (rhs) => { - var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); - if (bol) - { - TipFormHelper.ShowSucceed("鍖归厤鎴愬姛"); - } - else - { - TipFormHelper.ShowWarn("鍖归厤澶辫触"); - } + bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); }; dlg.ShowDialog(); } break; - case Yw.Hydro.ParterCatalog.Pipe://绠¢亾 { } break; - case Yw.Hydro.ParterCatalog.Elbow://寮ご { - var elbowInfo = hydroInfo.Elbows?.Find(x => x.Code == parter.Code); - var input = AssetsMatchingParasHelper.Create(hydroInfo, elbowInfo); + var elbowInfo = hydroInfo.Elbows?.Find(x => x.Code == propertyViewModel.Code); + if (elbowInfo == null) + { + break; + } + var input = AssetsMatchingParasHelper.Create(hydroInfo, elbowInfo, _allHydroCalcuResultListFunc?.Invoke()); var dlg = new ElbowSingMatchingDlg(); dlg.SetBindingData(input); - dlg.ReloadDataEvent += (rhs) => + dlg.ReloadDataEvent += (output) => { - var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); - if (bol) - { - TipFormHelper.ShowSucceed("鍖归厤鎴愬姛"); - } - else - { - TipFormHelper.ShowWarn("鍖归厤澶辫触"); - } + bol = AssetsMatchingParasHelper.Apply(hydroInfo, output); }; dlg.ShowDialog(); } break; - case Yw.Hydro.ParterCatalog.Threelink://涓夐�� { } break; - case Yw.Hydro.ParterCatalog.Fourlink://鍥涢�� { } break; + default: break; } + return bol; } //寮鸿皟杩炴帴缁勪欢 -- Gitblit v1.9.3