cloudflight
2024-12-24 97a43bf839f59cdda1641d61706e6e71a0c5e172
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs
@@ -2,6 +2,7 @@
using HStation.WinFrmUI.PhartRelation;
using HStation.WinFrmUI.Xhs;
using Yw.Model;
using Yw.WinFrmUI.HydroW3d;
namespace HStation.WinFrmUI
{
@@ -58,7 +59,7 @@
        /// </summary>
        public event Action<HydroVisualInfo> FlowEffectPropertyValueChangedEvent;
        #endregion 事件集
        #endregion
        #region 属性赋值
@@ -80,7 +81,12 @@
            set { this.hydroVisualPropertyCtrl1.SelectedObject = value; }
        }
        #endregion 属性赋值
        /// <summary>
        /// 计算结果
        /// </summary>
        public Func<HydroCalcuResult> CalcuResult { get; set; }
        #endregion
        #region 属性更新
@@ -114,7 +120,7 @@
            this.hydroVisualPropertyCtrl1.UpdateRows();
        }
        #endregion 属性更新
        #endregion
        #region 事件实现
@@ -185,7 +191,7 @@
                    {
                        var elbowViewModel = vm as HydroElbowViewModel;
                        var input = HydroMatchingHelper.Create(elbowViewModel);
                        var dlg = new SimulationElbowSingleMatchingDlg();
                        var dlg = new AssetsElbowSingleMatchingDlg();
                        dlg.ReloadDataEvent += (output) =>
                        {
                            HydroMatchingHelper.Apply(elbowViewModel, output);
@@ -429,12 +435,16 @@
            {
                case HydroCurve.Tank:
                    {
                        if (long.TryParse(vm.DbId, out long longDbId))
                        var tankViewModel = vm as HydroTankViewModel;
                        var curveInfo = tankViewModel.HydroInfo.Curves?.Find(x => x.Code == tankViewModel.VolCurve);
                        if (curveInfo != null)
                        {
                            var tankViewModel = vm as HydroTankViewModel;
                            var dlg = new AssetsTankCurveQLViewDlg();
                            dlg.SetBindingData(longDbId);
                            dlg.ShowDialog();
                            if (long.TryParse(curveInfo.DbId, out long longDbId))
                            {
                                var dlg = new AssetsTankCurveVOLViewDlg();
                                dlg.SetBindingData(longDbId);
                                dlg.ShowDialog();
                            }
                        }
                    }
                    break;
@@ -450,43 +460,55 @@
                            pumpViewModel.UpdateProperty();
                            this.hydroVisualPropertyCtrl1.UpdateRows();
                        };
                        dlg.SetBindingData(pumpViewModel);
                        dlg.SetBindingData(pumpViewModel, this.CalcuResult?.Invoke());
                        dlg.ShowDialog();
                    }
                    break;
                case HydroCurve.Valve:
                    {
                        if (long.TryParse(vm.DbId, out long longDbId))
                        var valveViewModel = vm as HydroValveViewModel;
                        var curveInfo = valveViewModel.HydroInfo.Curves?.Find(x => x.Code == valveViewModel.ValveSetting);
                        if (curveInfo != null)
                        {
                            var valveViewModel = vm as HydroValveViewModel;
                            var dlg = new AssetsValveCurveViewDlg();
                            dlg.SetBindingData(longDbId);
                            dlg.ShowDialog();
                            if (long.TryParse(curveInfo.DbId, out long longDbId))
                            {
                                var dlg = new AssetsValveCurveViewDlg();
                                dlg.SetBindingData(longDbId);
                                dlg.ShowDialog();
                            }
                        }
                    }
                    break;
                case HydroCurve.Exchanger:
                    {
                        if (long.TryParse(vm.DbId, out long longDbId))
                        var exchangerViewModel = vm as HydroExchangerViewModel;
                        var curveInfo = exchangerViewModel.HydroInfo.Curves?.Find(x => x.Code == exchangerViewModel.CurveQL);
                        if (curveInfo != null)
                        {
                            var exchangerViewModel = vm as HydroExchangerViewModel;
                            var dlg = new AssetsExchangerCurveQLViewDlg();
                            dlg.SetBindingData(longDbId);
                            dlg.ShowDialog();
                            if (long.TryParse(curveInfo.DbId, out long longDbId))
                            {
                                var dlg = new AssetsExchangerCurveQLViewDlg();
                                dlg.SetBindingData(longDbId);
                                dlg.ShowDialog();
                            }
                        }
                    }
                    break;
                case HydroCurve.Compressor:
                    {
                        if (long.TryParse(vm.DbId, out long longDbId))
                        var compressorViewModel = vm as HydroCompressorViewModel;
                        var curveInfo = compressorViewModel.HydroInfo.Curves?.Find(x => x.Code == compressorViewModel.CurveQL);
                        if (curveInfo != null)
                        {
                            var compressorViewModel = vm as HydroCompressorViewModel;
                            var dlg = new AssetsCompressorCurveQLViewDlg();
                            dlg.SetBindingData(longDbId);
                            dlg.ShowDialog();
                            if (long.TryParse(curveInfo.DbId, out long longDbId))
                            {
                                var dlg = new AssetsCompressorCurveQLViewDlg();
                                dlg.SetBindingData(longDbId);
                                dlg.ShowDialog();
                            }
                        }
                    }
                    break;
@@ -495,7 +517,7 @@
            }
        }
        #endregion 事件实现
        #endregion
        #region 事件穿透
@@ -543,6 +565,8 @@
            this.FlowEffectPropertyValueChangedEvent?.Invoke(vm?.Vmo);
        }
        #endregion 事件穿透
        #endregion
    }
}