namespace Yw.WinFrmUI { /// /// 组件视图 /// public class HydroResistanceViewModel : HydroLinkViewModel, IHydroCalcuResistanceResult { /// /// /// public HydroResistanceViewModel() { } /// /// /// public HydroResistanceViewModel(Yw.Model.HydroResistanceInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo) { this.Material = rhs.Material; this.Diameter = rhs.Diameter; this.MinorLoss = rhs.MinorLoss; this.CurveQL = rhs.CurveQL; } /// /// 运行模式 /// [Category("数据")] [DisplayName("运行模式")] [PropertyOrder(2001)] [Browsable(true)] public eResistanceMode ResistanceMode { get { var mode = eResistanceMode.Closed; switch (this.Vmo.LinkStatus) { case Yw.Hydro.ResistanceStatus.Closed: { mode = eResistanceMode.Closed; } break; case Yw.Hydro.ResistanceStatus.Open: { mode = eResistanceMode.MinorLoss; } break; case Yw.Hydro.ResistanceStatus.None: { mode = eResistanceMode.CurveQL; } break; default: break; } return mode; } set { switch (value) { case eResistanceMode.Closed: { this.Vmo.LinkStatus = Yw.Hydro.ResistanceStatus.Closed; } break; case eResistanceMode.MinorLoss: { this.Vmo.LinkStatus = Yw.Hydro.ResistanceStatus.Open; } break; case eResistanceMode.CurveQL: { this.Vmo.LinkStatus = Yw.Hydro.ResistanceStatus.None; } break; default: break; } } } /// /// 材料 /// [Category("数据")] [DisplayName("材料")] [PropertyOrder(2002)] [Browsable(true)] public string Material { get; set; } /// /// 直径 /// [Category("数据")] [DisplayName("直径")] [DisplayUnit("mm")] [PropertyOrder(2003)] [Browsable(true)] public double Diameter { get; set; } /// /// 局阻系数 /// [Category("数据")] [DisplayName("局阻系数")] [PropertyOrder(2004)] [Browsable(true)] public double MinorLoss { get; set; } /// /// 水头损失曲线 /// [Category("数据")] [DisplayName("水头损失曲线")] [PropertyOrder(2005)] [HydroCurvePro(HydroCurve.Resistance, HydroCurveType.CurveQL)] [Browsable(true)] public virtual string CurveQL { get; set; } /// /// 流量 /// [Category("计算结果")] [DisplayName("流量")] [DisplayUnit("m³/h")] [Display(Name = "流量(m³/h)")] [PropertyOrder(11001)] [HydroCalcuPro] [ShowEditor(false)] [Browsable(true)] public virtual double? CalcuQ { get; set; } /// /// 进口压力 /// [Category("计算结果")] [DisplayName("进口压力")] [DisplayUnit("m")] [Display(Name = "进口压力(m)")] [PropertyOrder(11002)] [HydroCalcuPro] [ShowEditor(false)] [Browsable(true)] public virtual double? CalcuPr1 { get; set; } /// /// 出口压力 /// [Category("计算结果")] [DisplayName("出口压力")] [DisplayUnit("m")] [Display(Name = "出口压力(m)")] [PropertyOrder(11003)] [HydroCalcuPro] [ShowEditor(false)] [Browsable(true)] public virtual double? CalcuPr2 { get; set; } /// /// 局部损失 /// [Category("计算结果")] [DisplayName("局部损失")] [DisplayUnit("m")] [Display(Name = "局部损失(m)")] [PropertyOrder(19008)] [HydroCalcuPro] [ShowEditor(false)] [Browsable(true)] public override double? CalcuMinorLoss { get; set; } /// /// /// [Browsable(false)] public new Yw.Model.HydroResistanceInfo Vmo { get { return _vmo as Yw.Model.HydroResistanceInfo; } set { _vmo = value; } } /// /// /// public override void UpdateProperty() { base.UpdateProperty(); this.Material = this.Vmo.Material; this.Diameter = this.Vmo.Diameter; this.MinorLoss = this.Vmo.MinorLoss; this.CurveQL = this.Vmo.CurveQL; } /// /// /// public override void UpdateVmoProperty() { base.UpdateVmoProperty(); this.Vmo.Material = this.Material; this.Vmo.Diameter = this.Diameter; this.Vmo.MinorLoss = this.MinorLoss; this.Vmo.CurveQL = this.CurveQL; } /// /// 更新计算属性 /// public override void UpdateCalcuProperty(HydroCalcuVisualResult rhs) { base.UpdateCalcuProperty(rhs); if (rhs is HydroCalcuResistanceResult calcuResistanceProperty) { this.CalcuQ = calcuResistanceProperty.CalcuQ.HasValue ? Math.Round(calcuResistanceProperty.CalcuQ.Value, 1) : null; this.CalcuPr1 = calcuResistanceProperty.CalcuPr1.HasValue ? Math.Round(calcuResistanceProperty.CalcuPr1.Value, 2) : null; this.CalcuPr2 = calcuResistanceProperty.CalcuPr2.HasValue ? Math.Round(calcuResistanceProperty.CalcuPr2.Value, 2) : null; } } } }