using System.Data.Odbc; namespace Yw.WinFrmUI { /// /// 扩散器视图 /// public class HydroEmitterViewModel : HydroJunctionViewModel, IHydroCalcuEmitterResult { /// /// /// public HydroEmitterViewModel() : base() { } /// /// /// public HydroEmitterViewModel(Yw.Model.HydroEmitterInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo) { this.Material = rhs.Material; this.Caliber = rhs.Caliber; this.Coefficient = rhs.Coefficient; } /// /// 损失系数 /// [Category("数据")] [DisplayName("损失系数")] [Display(Name = "损失系数")] [PropertyOrder(2002)] [Browsable(false)] public override double MinorLoss { get; set; } /// /// 材料 /// [Category("数据")] [DisplayName("材料")] [Display(Name = "材料")] [PropertyOrder(3001)] [Browsable(true)] public string Material { get; set; } /// /// 口径 /// [Category("数据")] [DisplayName("口径")] [DisplayUnit("mm")] [Display(Name = "口径(mm)")] [PropertyOrder(3002)] [Browsable(true)] public double Caliber { get; set; } /// /// 流量系数 /// [Category("数据")] [DisplayName("流量系数")] [PropertyOrder(3003)] [Browsable(true)] public virtual double Coefficient { get; set; } /// /// 自由压力 /// [Category("计算结果")] [DisplayName("自由压力")] [Display(Name = "自由压力(m)")] [DisplayUnit("m")] [Description("不包含标高,相当于表值")] [HydroCalcuPro] [PropertyOrder(10001)] [ShowEditor(false)] [Browsable(false)] public override double? CalcuPress { get; set; } /// /// 绝对压力 /// [Category("计算结果")] [DisplayName("绝对压力")] [DisplayUnit("m")] [Display(Name = "绝对压力(m)")] [Description("包含标高")] [HydroCalcuPro] [PropertyOrder(10002)] [ShowEditor(false)] [Browsable(false)] public override double? CalcuHead { get; set; } /// /// 流量 /// [Category("计算结果")] [DisplayName("流量")] [Display(Name = "流量(m³/h)")] [DisplayUnit("m³/h")] [HydroCalcuPro] [PropertyOrder(11001)] [ShowEditor(false)] [Browsable(true)] public virtual double? CalcuQ { get; set; } /// /// /// [Browsable(false)] public new Yw.Model.HydroEmitterInfo Vmo { get { return _vmo as Yw.Model.HydroEmitterInfo; } set { _vmo = value; } } /// /// /// public override void UpdateProperty() { base.UpdateProperty(); this.Material = this.Vmo.Material; this.Caliber = this.Vmo.Caliber; this.Coefficient = this.Vmo.Coefficient; } /// /// /// public override void UpdateVmoProperty() { base.UpdateVmoProperty(); this.Vmo.Material = this.Material; this.Vmo.Caliber = this.Caliber; this.Vmo.Coefficient = this.Coefficient; } /// /// 更新计算属性 /// public override void UpdateCalcuProperty(HydroCalcuVisualResult rhs) { base.UpdateCalcuProperty(rhs); if (rhs is HydroCalcuEmitterResult calcuEmitterResult) { this.CalcuQ = calcuEmitterResult.CalcuQ.HasValue ? Math.Round(calcuEmitterResult.CalcuQ.Value, 1) : null; } } } }