namespace Yw.WinFrmUI { /// /// 组件视图 /// public class HydroResistanceViewModel : HydroLinkViewModel, IHydroCalcuResistanceResult { /// /// /// public HydroResistanceViewModel() { } /// /// /// public HydroResistanceViewModel(Yw.Model.HydroResistanceInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo) { this.LinkStatus = HydroResistanceStatusHelper.GetStatusName(rhs.LinkStatus); this.Material = rhs.Material; this.Diameter = rhs.Diameter; this.MinorLoss = rhs.MinorLoss; this.CurveQL = rhs.CurveQL; } /// /// 模式 /// [Category("数据")] [DisplayName("模式")] [Display(Name = "模式")] [PropertyOrder(103)] [Browsable(true)] [TypeConverter(typeof(HydroResistanceStatusConverter))] public override string LinkStatus { get; set; } /// /// 材料 /// [Category("数据")] [DisplayName("材料")] [PropertyOrder(1001)] [Browsable(true)] public string Material { get; set; } /// /// 直径 /// [Category("数据")] [DisplayName("直径")] [DisplayUnit("mm")] [PropertyOrder(1002)] [Browsable(true)] public double Diameter { get; set; } /// /// 局阻系数 /// [Category("数据")] [DisplayName("局阻系数")] [PropertyOrder(1003)] [Browsable(true)] public double MinorLoss { get; set; } /// /// 水头损失曲线 /// [Category("数据")] [DisplayName("水头损失曲线")] [HydroCurvePro(HydroCurve.Resistance, HydroCurveType.CurveQL)] [PropertyOrder(1004)] [Browsable(false)] public virtual string Curve { get { if (string.IsNullOrEmpty(this.CurveQL)) { return "未配置"; } return "已配置"; } } /// /// 水头损失曲线 /// [Category("数据")] [DisplayName("水头损失曲线")] [PropertyOrder(1005)] [HydroCurvePro(HydroCurve.Resistance, HydroCurveType.CurveQL)] [Browsable(true)] public virtual string CurveQL { get; set; } /// /// 沿程损失 /// [Category("计算结果")] [DisplayName("沿程损失")] [Display(Name = "沿程损失(m)")] [PropertyOrder(19009)] [DisplayUnit("m")] [HydroCalcuPro] [ShowEditor(false)] [Browsable(false)] public override double? CalcuFrictionLoss { 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.LinkStatus = HydroResistanceStatusHelper.GetStatusName(this.Vmo.LinkStatus); 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.LinkStatus = HydroResistanceStatusHelper.GetStatusCode(this.LinkStatus); 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; } } } }