namespace Yw.WinFrmUI { /// /// 管段属性视图 /// public class HydroLinkViewModel : HydroVisualViewModel, IHydroCalcuLinkResult { /// /// /// public HydroLinkViewModel() { } /// /// /// public HydroLinkViewModel(Yw.Model.HydroLinkInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo) { this.StartCode = rhs.StartCode; this.EndCode = rhs.EndCode; } /// /// 上游节点 /// [Category("拓扑结构")] [DisplayName("上游节点")] [PropertyOrder(1001)] [HydroLinkPro] [ReadOnly(true)] [Browsable(true)] public string StartCode { get; set; } /// /// 下游节点 /// [Category("拓扑结构")] [DisplayName("下游节点")] [PropertyOrder(1002)] [HydroLinkPro] [ReadOnly(true)] [Browsable(true)] public string EndCode { get; set; } /// /// 流量 /// [Category("计算结果")] [DisplayName("流量")] [DisplayUnit("m³/h")] [Display(Name = "流量(m³/h)")] [PropertyOrder(10001)] [HydroCalcuPro] [ShowEditor(false)] [Browsable(false)] public virtual double? CalcuFlow { get; set; } /// /// 水头损失 /// [Category("计算结果")] [DisplayName("水头损失")] [DisplayUnit("m")] [Display(Name = "水头损失(m)")] [PropertyOrder(10002)] [HydroCalcuPro] [ShowEditor(false)] [Browsable(false)] public virtual double? CalcuHeadLoss { get; set; } /// /// 流速 /// [Category("计算结果")] [DisplayName("流速")] [DisplayUnit("m/s")] [Display(Name = "流速(m/s)")] [PropertyOrder(19007)] [HydroCalcuPro] [ShowEditor(false)] [Browsable(false)] public virtual double? CalcuVelocity { get; set; } /// /// 局部损失 /// [Category("计算结果")] [DisplayName("局部损失")] [DisplayUnit("m")] [Display(Name = "局部损失(m)")] [PropertyOrder(19008)] [HydroCalcuPro] [ShowEditor(false)] [Browsable(false)] public virtual double? CalcuMinorLoss { get; set; } /// /// 沿程损失 /// [Category("计算结果")] [DisplayName("沿程损失")] [DisplayUnit("m")] [Display(Name = "沿程损失(m)")] [PropertyOrder(19009)] [HydroCalcuPro] [ShowEditor(false)] [Browsable(false)] public virtual double? CalcuFrictionLoss { get; set; } /// /// /// [Browsable(false)] public new Yw.Model.HydroLinkInfo Vmo { get { return _vmo as Yw.Model.HydroLinkInfo; } set { _vmo = value; } } /// /// /// public override void UpdateProperty() { base.UpdateProperty(); this.StartCode = this.Vmo.StartCode; this.EndCode = this.Vmo.EndCode; } /// /// /// public override void UpdateVmoProperty() { base.UpdateVmoProperty(); this.Vmo.StartCode = this.StartCode; this.Vmo.EndCode = this.EndCode; } /// /// 更新计算属性 /// public override void UpdateCalcuProperty(HydroCalcuVisualResult rhs) { base.UpdateCalcuProperty(rhs); if (rhs is HydroCalcuLinkResult calcuLinkProperty) { this.CalcuFlow = calcuLinkProperty.CalcuFlow.HasValue ? Math.Round(calcuLinkProperty.CalcuFlow.Value, 1) : null; this.CalcuVelocity = calcuLinkProperty.CalcuVelocity.HasValue ? Math.Round(calcuLinkProperty.CalcuVelocity.Value, 2) : null; this.CalcuHeadLoss = calcuLinkProperty.CalcuHeadLoss.HasValue ? Math.Round(calcuLinkProperty.CalcuHeadLoss.Value, 2) : null; this.CalcuMinorLoss = calcuLinkProperty.CalcuMinorLoss.HasValue ? Math.Round(calcuLinkProperty.CalcuMinorLoss.Value, 4) : null; this.CalcuFrictionLoss = calcuLinkProperty.CalcuFrictionLoss.HasValue ? Math.Round(calcuLinkProperty.CalcuFrictionLoss.Value, 4) : null; } } } }