namespace Yw.WinFrmUI { /// /// 管道视图 /// public class HydroPipeViewModel : HydroLinkViewModel, IHydroCalcuPipeResult { /// /// /// public HydroPipeViewModel() { } /// /// /// public HydroPipeViewModel(Yw.Model.HydroPipeInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo) { this.Material = rhs.Material; this.UpdatePropStatus(nameof(this.Material), rhs, nameof(rhs.Material)); this.Diameter = Math.Round(rhs.Diameter, 0); this.UpdatePropStatus(nameof(this.Diameter), rhs, nameof(rhs.Diameter)); this.Length = Math.Round(rhs.Length, 4); this.UpdatePropStatus(nameof(this.Length), rhs, nameof(rhs.Length)); this.Roughness = rhs.Roughness; this.UpdatePropStatus(nameof(this.Roughness), rhs, nameof(rhs.Roughness)); this.MinorLoss = rhs.MinorLoss; this.UpdatePropStatus(nameof(this.MinorLoss), rhs, nameof(rhs.MinorLoss)); } /// /// 管道状态 /// [Category("数据")] [DisplayName("管道状态")] [PropertyOrder(1003)] [Browsable(true)] [TypeConverter(typeof(HydroPipeStatusConverter))] public override string LinkStatus { get; set; } /// /// 材质 /// [Category("数据")] [Display(Name = "材质")] [DisplayName("材质")] [PropertyOrder(2001)] [Browsable(true)] public string Material { get; set; } /// /// 直径 /// [Category("数据")] [Display(Name = "直径(mm)")] [DisplayName("直径")] [DisplayUnit("mm")] [PropertyOrder(2002)] [Browsable(true)] public virtual double Diameter { get; set; } /// /// 长度 /// [Category("数据")] [Display(Name = "长度(m)")] [DisplayName("长度")] [DisplayUnit("m")] [PropertyOrder(2003)] [Browsable(true)] public double Length { get; set; } /// /// 粗糙系数 /// [Category("数据")] [Display(Name = "粗糙系数")] [DisplayName("粗糙系数")] [Description("海森威廉公式系数")] [PropertyOrder(2004)] [Browsable(true)] public double Roughness { get; set; } /// /// 局阻系数 /// [Category("数据")] [Display(Name = "局阻系数")] [DisplayName("局阻系数")] [Description("局部阻力系数")] [PropertyOrder(2005)] [Browsable(true)] public double MinorLoss { get; set; } /// /// 流量 /// [Category("计算结果")] [DisplayName("流量")] [Display(Name = "流量(m³/h)")] [PropertyOrder(11001)] [Browsable(true)] [DisplayUnit("m³/h")] [HydroCalcuPro] [ShowEditor(false)] public virtual double? CalcuQ { get; set; } /// /// 进口压力 /// [Category("计算结果")] [DisplayName("进口压力")] [Display(Name = "进口压力(m)")] [PropertyOrder(11002)] [Browsable(true)] [DisplayUnit("m")] [HydroCalcuPro] [ShowEditor(false)] public virtual double? CalcuPr1 { get; set; } /// /// 出口压力 /// [Category("计算结果")] [DisplayName("出口压力")] [Display(Name = "出口压力(m)")] [PropertyOrder(11003)] [Browsable(true)] [DisplayUnit("m")] [HydroCalcuPro] [ShowEditor(false)] public virtual double? CalcuPr2 { get; set; } /// /// /// [Browsable(false)] public new Yw.Model.HydroPipeInfo Vmo { get { return _vmo as Yw.Model.HydroPipeInfo; } set { _vmo = value; } } /// /// 更新属性 /// public override void UpdateProperty() { base.UpdateProperty(); this.Material = this.Vmo.Material; this.UpdatePropStatus(nameof(this.Material), this.Vmo, nameof(this.Vmo.Material)); this.Diameter = this.Vmo.Diameter; this.UpdatePropStatus(nameof(this.Diameter), this.Vmo, nameof(this.Vmo.Diameter)); this.Length = Math.Round(this.Vmo.Length, 4); this.UpdatePropStatus(nameof(this.Length), this.Vmo, nameof(this.Vmo.Length)); this.Roughness = this.Vmo.Roughness; this.UpdatePropStatus(nameof(this.Roughness), this.Vmo, nameof(this.Vmo.Roughness)); this.MinorLoss = this.Vmo.MinorLoss; this.UpdatePropStatus(nameof(this.MinorLoss), this.Vmo, nameof(this.Vmo.MinorLoss)); } /// /// /// public override void UpdateVmoProperty() { base.UpdateVmoProperty(); this.Vmo.Material = this.Material; this.Vmo.UpdatePropStatus(nameof(this.Vmo.Material), this, nameof(this.Material)); this.Vmo.Diameter = this.Diameter; this.Vmo.UpdatePropStatus(nameof(this.Vmo.Diameter), this, nameof(this.Diameter)); this.Vmo.Length = this.Length; this.Vmo.UpdatePropStatus(nameof(this.Vmo.Length), this, nameof(this.Length)); this.Vmo.Roughness = this.Roughness; this.Vmo.UpdatePropStatus(nameof(this.Vmo.Roughness), this, nameof(this.Roughness)); this.Vmo.MinorLoss = this.MinorLoss; this.Vmo.UpdatePropStatus(nameof(this.Vmo.MinorLoss), this, nameof(this.MinorLoss)); } /// /// 更新计算属性 /// public override void UpdateCalcuProperty(HydroCalcuVisualResult rhs) { base.UpdateCalcuProperty(rhs); if (rhs is HydroCalcuPipeResult calcuPipeProperty) { this.CalcuQ = calcuPipeProperty.CalcuQ.HasValue ? Math.Round(calcuPipeProperty.CalcuQ.Value, 1) : null; this.CalcuPr1 = calcuPipeProperty.CalcuPr1.HasValue ? Math.Round(calcuPipeProperty.CalcuPr1.Value, 2) : null; this.CalcuPr2 = calcuPipeProperty.CalcuPr2.HasValue ? Math.Round(calcuPipeProperty.CalcuPr2.Value, 2) : null; } } } }