lixiaojun
2024-11-20 c09478fe73685a87de0c48f9b300008f06408dd8
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/XhsProjectSimulationSchemeMgrPage.cs
@@ -88,7 +88,7 @@
            {
                _bimfaceCtrl = new XhsProjectSimulationBimfaceCtrl();
                _bimfaceCtrl.Dock = DockStyle.Fill;
                await _bimfaceCtrl.InitialData(_project, _projectSite, () => _hydroInfo);
                await _bimfaceCtrl.InitialData(_project, _projectSite);
                _bimfaceCtrl.LoadCompletedEvent += () =>
                {//view加载完成事件
                    if (_hydroInfo == null)
@@ -103,7 +103,7 @@
                    {
                        return;
                    }
                    _selectedVisual = obj;
                    //_selectedVisual = obj;
                    ShowSelectedProperty();
                };
            }
@@ -174,57 +174,57 @@
            {
                _propertyCtrl = new XhsProjectSimulationPropertyCtrl();
                _propertyCtrl.Dock = DockStyle.Fill;
                _propertyCtrl.InitialData(() => _hydroInfo, () => GetCalcuResultList());
                _propertyCtrl.BlinkLinkParterEvent += async (code, linkCode) =>
                { //强调连接组件
                    if (string.IsNullOrEmpty(code))
                    {
                        return;
                    }
                    if (string.IsNullOrEmpty(linkCode))
                    {
                        return;
                    }
                    if (_hydroInfo == null)
                    {
                        return;
                    }
                    var allVisualList = _hydroInfo.GetAllVisuals();
                    if (allVisualList == null || allVisualList.Count < 1)
                    {
                        return;
                    }
                    var linkParter = allVisualList.Find(x => x.Code == linkCode);
                    if (linkParter == null)
                    {
                        return;
                    }
                    var blinkCodes = new List<string>();
                    if (linkParter.GetType() == typeof(Yw.Model.HydroJunctionInfo))
                    {
                        var allLinkList = _hydroInfo.GetAllLinks();
                        if (allLinkList == null || allLinkList.Count < 1)
                        {
                            return;
                        }
                        var linkList = allLinkList.Where(x => (x.StartCode == linkParter.Code || x.EndCode == linkParter.Code) && x.Code != code).ToList();
                        if (linkList == null || linkList.Count < 1)
                        {
                            return;
                        }
                        blinkCodes.AddRange(linkList.Select(x => x.Code));
                    }
                    else
                    {
                        blinkCodes.Add(linkCode);
                    }
                //_propertyCtrl.InitialData(() => _hydroInfo, () => GetCalcuResultList());
                //_propertyCtrl.BlinkLinkNodeEvent += async (code, linkCode) =>
                //{ //强调连接组件
                //    if (string.IsNullOrEmpty(code))
                //    {
                //        return;
                //    }
                //    if (string.IsNullOrEmpty(linkCode))
                //    {
                //        return;
                //    }
                //    if (_hydroInfo == null)
                //    {
                //        return;
                //    }
                //    var allVisualList = _hydroInfo.GetAllVisuals();
                //    if (allVisualList == null || allVisualList.Count < 1)
                //    {
                //        return;
                //    }
                //    var linkParter = allVisualList.Find(x => x.Code == linkCode);
                //    if (linkParter == null)
                //    {
                //        return;
                //    }
                //    var blinkCodes = new List<string>();
                //    if (linkParter.GetType() == typeof(Yw.Model.HydroJunctionInfo))
                //    {
                //        var allLinkList = _hydroInfo.GetAllLinks();
                //        if (allLinkList == null || allLinkList.Count < 1)
                //        {
                //            return;
                //        }
                //        var linkList = allLinkList.Where(x => (x.StartCode == linkParter.Code || x.EndCode == linkParter.Code) && x.Code != code).ToList();
                //        if (linkList == null || linkList.Count < 1)
                //        {
                //            return;
                //        }
                //        blinkCodes.AddRange(linkList.Select(x => x.Code));
                //    }
                //    else
                //    {
                //        blinkCodes.Add(linkCode);
                //    }
                    await _bimfaceCtrl?.SetBlinkComponents(blinkCodes);
                    await Task.Delay(5000);
                    await _bimfaceCtrl?.ClearBlinkComponents();
                };
                //    await _bimfaceCtrl?.SetBlinkComponents(blinkCodes);
                //    await Task.Delay(5000);
                //    await _bimfaceCtrl?.ClearBlinkComponents();
                //};
                _propertyCtrl.ViewParterEvent += (parter) =>
                _propertyCtrl.HydroViewEvent += (parter) =>
                {
                    if (parter == null)
                    {
@@ -251,11 +251,11 @@
                    //分级属性发生改变
                    //判断当前是否有分级展示,若有则更新分级,最好是更新单个分级
                };
                _propertyCtrl.FlowDirectionPropertyValueChangedEvent += async (parter) =>
                _propertyCtrl.FlowEffectPropertyValueChangedEvent += async (parter) =>
                {
                    //流向属性发生改变
                    //判断流向是否加载,如果加载则更新流向,最好是更新单个流向
                    UpdateFlowEffect(parter);
                    //UpdateFlowEffect(parter);
                    //await _bimfaceCtrl?.UnloadFlowEffectById(parter.Code);
                };
@@ -1045,7 +1045,7 @@
        //显示工况计算窗体
        private void ShowWorkingCalcuDlg()
        {
            var dlg = new SetHydroWorkingInfoDlg();
            var dlg = new SetHydroWorkingDlg();
            dlg.HydroViewEvent += async (parter) =>
            {
                _selectedVisual = parter as Yw.Model.HydroVisualInfo;
@@ -1055,52 +1055,52 @@
                }
                ShowSelectedProperty();
            };
            dlg.HydroCalcuEvent += async (hydroInfo, workingInfo) =>
            {
                if (_hydroInfo == null)
                {
                    return;
                }
                _hydroInfo.UpdateWorkingInfo(workingInfo);
                //校验
                _checkResult = _hydroInfo.Check();
                if (!_checkResult.Succeed)
                {
                    ShowCheckCtrl();
                    TipFormHelper.ShowWarn("校验失败,请检查后重试");
                    return;
                }
            //dlg.HydroCalcuEvent += async (hydroInfo, workingInfo) =>
            //{
            //    if (_hydroInfo == null)
            //    {
            //        return;
            //    }
            //    _hydroInfo.UpdateWorkingInfo(workingInfo);
            //    //校验
            //    _checkResult = _hydroInfo.Check();
            //    if (!_checkResult.Succeed)
            //    {
            //        ShowCheckCtrl();
            //        TipFormHelper.ShowWarn("校验失败,请检查后重试");
            //        return;
            //    }
                WaitFormHelper.ShowWaitForm(this, "正在计算分析中,请稍候...");
            //    WaitFormHelper.ShowWaitForm(this, "正在计算分析中,请稍候...");
                await Task.Delay(5000);
            //    await Task.Delay(5000);
                var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo);
                _calcuResult = netWork.CalcuMinorLoss();
            //    var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo);
            //    _calcuResult = netWork.CalcuMinorLoss();
                WaitFormHelper.HideWaitForm();
                if (_calcuResult.Succeed)
                {
                    GetCalcuResultList(false);
                    UpdateVisualViewModelCalcuProperty();
                    UpdateVisualListCtrl();
                    UpdateSelectedProperty();
                    await _bimfaceCtrl?.SetLogicCalcuCustomLabels(_calcuResult);
                    TipFormHelper.ShowSucceed("计算成功!");
                    var codes = _hydroInfo.Pumps.Select(x => x.Code).ToList();
                    await _bimfaceCtrl?.ZoomAndSelectComponents(codes);
                }
                else
                {
                    ShowCalcuFailedCtrl();
                    TipFormHelper.ShowError("计算失败!");
                }
                AutoApplyGrading();
                UpdateVisualListCtrl();
                ShowSelectedProperty();
            };
            dlg.SetBindingData(_hydroInfo);
            //    WaitFormHelper.HideWaitForm();
            //    if (_calcuResult.Succeed)
            //    {
            //        GetCalcuResultList(false);
            //        UpdateVisualViewModelCalcuProperty();
            //        UpdateVisualListCtrl();
            //        UpdateSelectedProperty();
            //        await _bimfaceCtrl?.SetLogicCalcuCustomLabels(_calcuResult);
            //        TipFormHelper.ShowSucceed("计算成功!");
            //        var codes = _hydroInfo.Pumps.Select(x => x.Code).ToList();
            //        await _bimfaceCtrl?.ZoomAndSelectComponents(codes);
            //    }
            //    else
            //    {
            //        ShowCalcuFailedCtrl();
            //        TipFormHelper.ShowError("计算失败!");
            //    }
            //    AutoApplyGrading();
            //    UpdateVisualListCtrl();
            //    ShowSelectedProperty();
            //};
            //dlg.SetBindingData(_hydroInfo);
            dlg.ShowDialog();
        }
@@ -1441,51 +1441,51 @@
            if (_allMarkSetList == null)
            {
                _allMarkSetList = new List<HydroMarkSetViewModel>();
                if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Waterbox,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Waterbox),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Pump,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                if (_hydroInfo.Valves != null && _hydroInfo.Valves.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Valve,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                if (_hydroInfo.Pipes != null && _hydroInfo.Pipes.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Pipe,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0)
                {
                    _allMarkSetList.Add(new HydroMarkSetViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Nozzle,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Nozzle),
                        MarkType = (int)eWaterboxMarkType.None
                    });
                }
                //if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Waterbox,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Waterbox),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
                //if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Pump,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
                //if (_hydroInfo.Valves != null && _hydroInfo.Valves.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Valve,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
                //if (_hydroInfo.Pipes != null && _hydroInfo.Pipes.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Pipe,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
                //if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0)
                //{
                //    _allMarkSetList.Add(new HydroMarkSetViewModel()
                //    {
                //        Code = Yw.Hydro.ParterCatalog.Nozzle,
                //        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Nozzle),
                //        MarkType = (int)eWaterboxMarkType.None
                //    });
                //}
            }
            return _allMarkSetList;
        }
@@ -1502,408 +1502,408 @@
            }
            _allMarkResultList = new List<HydroMarkResultViewModel>();
            var allMarkSetList = GetMarkSetList();
            foreach (var markSet in allMarkSetList)
            {
                switch (markSet.Code)
                {
                    case Yw.Hydro.ParterCatalog.Waterbox:
                        {
                            if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0)
                            {
                                switch ((eWaterboxMarkType)markSet.MarkType)
                                {
                                    case eWaterboxMarkType.None:
                                        {
            //foreach (var markSet in allMarkSetList)
            //{
            //    switch (markSet.Code)
            //    {
            //        case Yw.Hydro.ParterCatalog.Waterbox:
            //            {
            //                if (_hydroInfo.Waterboxs != null && _hydroInfo.Waterboxs.Count > 0)
            //                {
            //                    switch ((eWaterboxMarkType)markSet.MarkType)
            //                    {
            //                        case eWaterboxMarkType.None:
            //                            {
                                        }
                                        break;
                                    case eWaterboxMarkType.PoolElev:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"池底标高:{Math.Round(t.PoolElev, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.InitLevel:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"初始水位:{Math.Round(t.InitLevel, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.MinLevel:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"最小水位:{Math.Round(t.MinLevel, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.MaxLevel:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"最高水位:{Math.Round(t.MaxLevel, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.DN:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"直径:{Math.Round(t.DN, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eWaterboxMarkType.MinVol:
                                        {
                                            _hydroInfo.Waterboxs.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"最小容积:{Math.Round(t.MinVol, 1)}m"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    case Yw.Hydro.ParterCatalog.Pump:
                        {
                            if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
                            {
                                switch ((ePumpMarkType)markSet.MarkType)
                                {
                                    case ePumpMarkType.None:
                                        {
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.PoolElev:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"池底标高:{Math.Round(t.PoolElev, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.InitLevel:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"初始水位:{Math.Round(t.InitLevel, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.MinLevel:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"最小水位:{Math.Round(t.MinLevel, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.MaxLevel:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"最高水位:{Math.Round(t.MaxLevel, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.DN:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"直径:{Math.Round(t.DN, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eWaterboxMarkType.MinVol:
            //                            {
            //                                _hydroInfo.Waterboxs.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"最小容积:{Math.Round(t.MinVol, 1)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        case Yw.Hydro.ParterCatalog.Pump:
            //            {
            //                if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
            //                {
            //                    switch ((ePumpMarkType)markSet.MarkType)
            //                    {
            //                        case ePumpMarkType.None:
            //                            {
                                        }
                                        break;
                                    case ePumpMarkType.PumpStatus:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"开机状态:{Yw.WinFrmUI.HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedP:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定功率:{t.RatedP}kW"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedQ:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定流量:{t.RatedQ}m³/h"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedH:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定扬程:{t.RatedH}m"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedN:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定转速:{t.RatedN}r/min"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.RatedHz:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"额定频率:{t.RatedHz}"
                                                });
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.CurrentN:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                if (t.RatedN.HasValue)
                                                {
                                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                    {
                                                        Code = t.Code,
                                                        Text = $"设定转速:{Math.Round(t.RatedN.Value * t.SpeedRatio, 1)}r/min"
                                                    });
                                                }
                                            });
                                        }
                                        break;
                                    case ePumpMarkType.CurrentHz:
                                        {
                                            _hydroInfo.Pumps.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"设定频率:{Math.Round(t.RatedHz * t.SpeedRatio, 1)}hz"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    case Yw.Hydro.ParterCatalog.Valve:
                        {
                            if (_hydroInfo.Valves != null && _hydroInfo.Valves.Count > 0)
                            {
                                switch ((eValveMarkType)markSet.MarkType)
                                {
                                    case eValveMarkType.None:
                                        {
            //                            }
            //                            break;
            //                        case ePumpMarkType.PumpStatus:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"开机状态:{Yw.WinFrmUI.HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedP:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定功率:{t.RatedP}kW"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedQ:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定流量:{t.RatedQ}m³/h"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedH:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定扬程:{t.RatedH}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedN:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定转速:{t.RatedN}r/min"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.RatedHz:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"额定频率:{t.RatedHz}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.CurrentN:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    if (t.RatedN.HasValue)
            //                                    {
            //                                        _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                        {
            //                                            Code = t.Code,
            //                                            Text = $"设定转速:{Math.Round(t.RatedN.Value * t.SpeedRatio, 1)}r/min"
            //                                        });
            //                                    }
            //                                });
            //                            }
            //                            break;
            //                        case ePumpMarkType.CurrentHz:
            //                            {
            //                                _hydroInfo.Pumps.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"设定频率:{Math.Round(t.RatedHz * t.SpeedRatio, 1)}hz"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        case Yw.Hydro.ParterCatalog.Valve:
            //            {
            //                if (_hydroInfo.Valves != null && _hydroInfo.Valves.Count > 0)
            //                {
            //                    switch ((eValveMarkType)markSet.MarkType)
            //                    {
            //                        case eValveMarkType.None:
            //                            {
                                        }
                                        break;
                                    case eValveMarkType.ValveStatus:
                                        {
                                            _hydroInfo.Valves.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"阀门状态:{HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
                                                });
                                            });
                                        }
                                        break;
                                    case eValveMarkType.ValveType:
                                        {
                                            _hydroInfo.Valves.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"阀门类型:{HydroValveTypeHelper.GetTypeName(t.ValveType)}"
                                                });
                                            });
                                        }
                                        break;
                                    case eValveMarkType.Diameter:
                                        {
                                            _hydroInfo.Valves.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"直径:{t.Diameter}mm"
                                                });
                                            });
                                        }
                                        break;
                                    case eValveMarkType.MinorLoss:
                                        {
                                            _hydroInfo.Valves.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"局阻系数:{t.MinorLoss}"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    case Yw.Hydro.ParterCatalog.Pipe:
                        {
                            if (_hydroInfo.Pipes != null && _hydroInfo.Pipes.Count > 0)
                            {
                                switch ((ePipeMarkType)markSet.MarkType)
                                {
                                    case ePipeMarkType.None:
                                        {
            //                            }
            //                            break;
            //                        case eValveMarkType.ValveStatus:
            //                            {
            //                                _hydroInfo.Valves.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"阀门状态:{HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eValveMarkType.ValveType:
            //                            {
            //                                _hydroInfo.Valves.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"阀门类型:{HydroValveTypeHelper.GetTypeName(t.ValveType)}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eValveMarkType.Diameter:
            //                            {
            //                                _hydroInfo.Valves.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"直径:{t.Diameter}mm"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eValveMarkType.MinorLoss:
            //                            {
            //                                _hydroInfo.Valves.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"局阻系数:{t.MinorLoss}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        case Yw.Hydro.ParterCatalog.Pipe:
            //            {
            //                if (_hydroInfo.Pipes != null && _hydroInfo.Pipes.Count > 0)
            //                {
            //                    switch ((ePipeMarkType)markSet.MarkType)
            //                    {
            //                        case ePipeMarkType.None:
            //                            {
                                        }
                                        break;
                                    case ePipeMarkType.PipeStatus:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"状态:{Yw.WinFrmUI.HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
                                                });
                                            });
                                        }
                                        break;
                                    case ePipeMarkType.Diameter:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"直径:{t.Diameter}mm"
                                                });
                                            });
                                        }
                                        break;
                                    case ePipeMarkType.Length:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"长度:{t.Length}m"
                                                });
                                            });
                                        }
                                        break;
                                    case ePipeMarkType.Roughness:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"粗糙系数:{t.Roughness}"
                                                });
                                            });
                                        }
                                        break;
                                    case ePipeMarkType.MinorLoss:
                                        {
                                            _hydroInfo.Pipes.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"局阻系数:{t.MinorLoss}"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    case Yw.Hydro.ParterCatalog.Nozzle:
                        {
                            if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0)
                            {
                                switch ((eNozzleMarkType)markSet.MarkType)
                                {
                                    case eNozzleMarkType.None:
                                        {
            //                            }
            //                            break;
            //                        case ePipeMarkType.PipeStatus:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"状态:{Yw.WinFrmUI.HydroLinkStatusHelper.GetStatusName(t.LinkStatus)}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePipeMarkType.Diameter:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"直径:{t.Diameter}mm"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePipeMarkType.Length:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"长度:{t.Length}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePipeMarkType.Roughness:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"粗糙系数:{t.Roughness}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case ePipeMarkType.MinorLoss:
            //                            {
            //                                _hydroInfo.Pipes.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"局阻系数:{t.MinorLoss}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        case Yw.Hydro.ParterCatalog.Nozzle:
            //            {
            //                if (_hydroInfo.Nozzles != null && _hydroInfo.Nozzles.Count > 0)
            //                {
            //                    switch ((eNozzleMarkType)markSet.MarkType)
            //                    {
            //                        case eNozzleMarkType.None:
            //                            {
                                        }
                                        break;
                                    case eNozzleMarkType.Elev:
                                        {
                                            _hydroInfo.Nozzles.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"标高:{Math.Round(t.Elev, 4)}m"
                                                });
                                            });
                                        }
                                        break;
                                    case eNozzleMarkType.Demand:
                                        {
                                            _hydroInfo.Nozzles.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"需水量:{t.Demand}m³/h"
                                                });
                                            });
                                        }
                                        break;
                                    case eNozzleMarkType.Coefficient:
                                        {
                                            _hydroInfo.Nozzles.ForEach(t =>
                                            {
                                                _allMarkResultList.Add(new HydroMarkResultViewModel()
                                                {
                                                    Code = t.Code,
                                                    Text = $"喷射系数:{t.Coefficient}"
                                                });
                                            });
                                        }
                                        break;
                                    default: break;
                                }
                            }
                        }
                        break;
                    default: break;
                }
            }
            //                            }
            //                            break;
            //                        case eNozzleMarkType.Elev:
            //                            {
            //                                _hydroInfo.Nozzles.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"标高:{Math.Round(t.Elev, 4)}m"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eNozzleMarkType.Demand:
            //                            {
            //                                _hydroInfo.Nozzles.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"需水量:{t.Demand}m³/h"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        case eNozzleMarkType.Coefficient:
            //                            {
            //                                _hydroInfo.Nozzles.ForEach(t =>
            //                                {
            //                                    _allMarkResultList.Add(new HydroMarkResultViewModel()
            //                                    {
            //                                        Code = t.Code,
            //                                        Text = $"喷射系数:{t.Coefficient}"
            //                                    });
            //                                });
            //                            }
            //                            break;
            //                        default: break;
            //                    }
            //                }
            //            }
            //            break;
            //        default: break;
            //    }
            //}
            return _allMarkResultList;
        }
@@ -2050,8 +2050,8 @@
                {
                    _allGradingApplyList.Add(new HydroGradingApplyViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Pump,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
                        Catalog = Yw.Hydro.ParterCatalog.Pump,
                        CatalogName = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump),
                        PropName = Yw.Hydro.ParterProp.LinkStatus
                    });
                }
@@ -2059,8 +2059,8 @@
                {
                    _allGradingApplyList.Add(new HydroGradingApplyViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Valve,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
                        Catalog = Yw.Hydro.ParterCatalog.Valve,
                        CatalogName = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve),
                        PropName = Yw.Hydro.ParterProp.LinkStatus
                    });
                }
@@ -2068,8 +2068,8 @@
                {
                    _allGradingApplyList.Add(new HydroGradingApplyViewModel()
                    {
                        Code = Yw.Hydro.ParterCatalog.Pipe,
                        Name = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
                        Catalog = Yw.Hydro.ParterCatalog.Pipe,
                        CatalogName = Yw.WinFrmUI.HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe),
                        PropName = HydroVisualCalcuProp.CalcuFlow
                    });
                }
@@ -2078,7 +2078,7 @@
        }
        //获取颜色分级应用结果列表
        private async Task<List<HydroGradingApplyResultViewModel>> GetGradingApplyResultList()
        private async Task<List<HydroGradingResultViewModel>> GetGradingApplyResultList()
        {
            if (_hydroInfo == null)
            {
@@ -2103,13 +2103,13 @@
            var allCalcuResultList = GetCalcuResultList();
            //所有应用结果列表
            var allGradingApplyResultList = new List<HydroGradingApplyResultViewModel>();
            var allGradingApplyResultList = new List<HydroGradingResultViewModel>();
            allGradingApplyList.ForEach(x =>
            {
                var allCatalogGradingList = allGradingList.Where(t => t.Catalog == x.Code).ToList();
                var allCatalogGradingList = allGradingList.Where(t => t.Catalog == x.Catalog).ToList();
                if (allCatalogGradingList != null || allCatalogGradingList.Count > 0)
                {
                    switch (x.Code)
                    switch (x.Catalog)
                    {
                        case Yw.Hydro.ParterCatalog.Pump:
                            {
@@ -2127,7 +2127,7 @@
                                                        var grading = gradingList.Meet(pump.LinkStatus);
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pump.Code,
                                                                Color = grading.Color
@@ -2150,7 +2150,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pump.Code,
                                                                        Color = grading.Color
@@ -2175,7 +2175,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pump.Code,
                                                                        Color = grading.Color
@@ -2200,7 +2200,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pump.Code,
                                                                        Color = grading.Color
@@ -2234,7 +2234,7 @@
                                                        var grading = gradingList.Meet(valve.LinkStatus);
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = valve.Code,
                                                                Color = grading.Color
@@ -2257,7 +2257,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = valve.Code,
                                                                        Color = grading.Color
@@ -2282,7 +2282,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = valve.Code,
                                                                        Color = grading.Color
@@ -2307,7 +2307,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = valve.Code,
                                                                        Color = grading.Color
@@ -2346,7 +2346,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pipe.Code,
                                                                        Color = grading.Color
@@ -2371,7 +2371,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pipe.Code,
                                                                        Color = grading.Color
@@ -2396,7 +2396,7 @@
                                                                var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                                if (grading != null)
                                                                {
                                                                    var result = new HydroGradingApplyResultViewModel()
                                                                    var result = new HydroGradingResultViewModel()
                                                                    {
                                                                        Code = pipe.Code,
                                                                        Color = grading.Color
@@ -2423,7 +2423,7 @@
        }
        //获取颜色分级应用结果列表
        private async Task<List<HydroGradingApplyResultViewModel>> GetGradingApplyResultList(string catalog, string propName)
        private async Task<List<HydroGradingResultViewModel>> GetGradingApplyResultList(string catalog, string propName)
        {
            if (_hydroInfo == null)
            {
@@ -2450,7 +2450,7 @@
            }
            //当前分级应用
            var gradingApply = allGradingApplyList.Find(x => x.Code == catalog);
            var gradingApply = allGradingApplyList.Find(x => x.Catalog == catalog);
            if (gradingApply == null)
            {
                return default;
@@ -2461,7 +2461,7 @@
            var allCalcuResultList = GetCalcuResultList();
            //应用结果列表
            var gradingApplyResultList = new List<HydroGradingApplyResultViewModel>();
            var gradingApplyResultList = new List<HydroGradingResultViewModel>();
            switch (catalog)
            {
@@ -2481,7 +2481,7 @@
                                                var grading = gradingList.Meet(pump.LinkStatus);
                                                if (grading != null)
                                                {
                                                    var result = new HydroGradingApplyResultViewModel()
                                                    var result = new HydroGradingResultViewModel()
                                                    {
                                                        Code = pump.Code,
                                                        Color = grading.Color
@@ -2504,7 +2504,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pump.Code,
                                                                Color = grading.Color
@@ -2529,7 +2529,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pump.Code,
                                                                Color = grading.Color
@@ -2554,7 +2554,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pump.Code,
                                                                Color = grading.Color
@@ -2588,7 +2588,7 @@
                                                var grading = gradingList.Meet(valve.LinkStatus);
                                                if (grading != null)
                                                {
                                                    var result = new HydroGradingApplyResultViewModel()
                                                    var result = new HydroGradingResultViewModel()
                                                    {
                                                        Code = valve.Code,
                                                        Color = grading.Color
@@ -2611,7 +2611,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = valve.Code,
                                                                Color = grading.Color
@@ -2636,7 +2636,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = valve.Code,
                                                                Color = grading.Color
@@ -2661,7 +2661,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = valve.Code,
                                                                Color = grading.Color
@@ -2700,7 +2700,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuFlow.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pipe.Code,
                                                                Color = grading.Color
@@ -2725,7 +2725,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuVelocity.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pipe.Code,
                                                                Color = grading.Color
@@ -2750,7 +2750,7 @@
                                                        var grading = gradingList.Meet(Math.Abs(calcuLinkResult.CalcuHeadLoss.Value));
                                                        if (grading != null)
                                                        {
                                                            var result = new HydroGradingApplyResultViewModel()
                                                            var result = new HydroGradingResultViewModel()
                                                            {
                                                                Code = pipe.Code,
                                                                Color = grading.Color