using Yw.Model; namespace Yw.WinFrmUI { /// /// 管段属性视图 /// public class HydroLinkPropertyViewModel : HydroParterPropertyViewModel, IHydroCalcuLinkResult { /// /// /// public HydroLinkPropertyViewModel() : base() { } /// /// /// public HydroLinkPropertyViewModel(Yw.Model.HydroLinkInfo rhs) : base(rhs) { this.StartCode = rhs.StartCode; this.UpdatePropStatus(nameof(this.StartCode), rhs, nameof(rhs.StartCode)); this.EndCode = rhs.EndCode; this.UpdatePropStatus(nameof(this.EndCode), rhs, nameof(rhs.EndCode)); this.LinkStatus = HydroLinkStatusHelper.GetStatusName(rhs.LinkStatus); this.UpdatePropStatus(nameof(this.LinkStatus), rhs, nameof(rhs.LinkStatus)); } /// /// 上游节点 /// [Category("基础信息")] [DisplayName("上游节点")] [PropertyOrder(11)] [Browsable(true)] [ShowEditor(false)] public string StartCode { get; set; } /// /// 下游节点 /// [Category("基础信息")] [DisplayName("下游节点")] [PropertyOrder(12)] [Browsable(true)] [ShowEditor(false)] public string EndCode { get; set; } /// /// 管段状态 /// [Category("数据")] [DisplayName("管段状态")] [PropertyOrder(13)] [Browsable(true)] public virtual string LinkStatus { get; set; } /// /// 流量 /// [Category("计算结果")] [DisplayName("流量")] [PropertyOrder(10001)] [Browsable(true)] [DisplayUnit("m³/h")] [IsHydroCalcuPro(true)] [ShowEditor(false)] public double? CalcuFlow { get; set; } /// /// 流速 /// [Category("计算结果")] [DisplayName("流速")] [PropertyOrder(10002)] [Browsable(true)] [DisplayUnit("m/s")] [IsHydroCalcuPro(true)] [ShowEditor(false)] public double? CalcuVelocity { get; set; } /// /// 水头损失 /// [Category("计算结果")] [DisplayName("水头损失")] [PropertyOrder(10003)] [Browsable(true)] [DisplayUnit("m")] [IsHydroCalcuPro(true)] [ShowEditor(false)] public double? CalcuHeadLoss { get; set; } /// /// 更新属性 /// /// /// public override void UpdateProperty(HydroParterInfo rhs, List allParterList) { base.UpdateProperty(rhs, allParterList); if (rhs is Yw.Model.HydroLinkInfo hydroLinkInfo) { this.StartCode = hydroLinkInfo.StartCode; this.UpdatePropStatus(nameof(this.StartCode), hydroLinkInfo, nameof(hydroLinkInfo.StartCode)); this.EndCode = hydroLinkInfo.EndCode; this.UpdatePropStatus(nameof(this.EndCode), hydroLinkInfo, nameof(hydroLinkInfo.EndCode)); this.LinkStatus = HydroLinkStatusHelper.GetStatusName(hydroLinkInfo.LinkStatus); this.UpdatePropStatus(nameof(this.LinkStatus), hydroLinkInfo, nameof(hydroLinkInfo.LinkStatus)); } } /// /// 更新计算属性 /// /// public override void UpdateCalcuProperty(IHydroCalcuResult rhs) { base.UpdateCalcuProperty(rhs); if (rhs is IHydroCalcuLinkResult calcuLinkProperty) { this.CalcuFlow = calcuLinkProperty.CalcuFlow ?? Math.Round(calcuLinkProperty.CalcuFlow.Value, 1); this.CalcuVelocity = calcuLinkProperty.CalcuVelocity ?? Math.Round(calcuLinkProperty.CalcuVelocity.Value, 2); this.CalcuHeadLoss = calcuLinkProperty.CalcuHeadLoss ?? Math.Round(calcuLinkProperty.CalcuHeadLoss.Value, 2); } } } }