namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 管段属性视图
|
/// </summary>
|
public class HydroLinkViewModel : HydroVisualViewModel, IHydroCalcuLinkResult
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public HydroLinkViewModel() { }
|
|
/// <summary>
|
///
|
/// </summary>
|
public HydroLinkViewModel(Yw.Model.HydroLinkInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo)
|
{
|
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));
|
|
this.Vmo = rhs;
|
}
|
|
/// <summary>
|
/// 上游节点
|
/// </summary>
|
[Category("拓扑结构")]
|
[DisplayName("上游节点")]
|
[PropertyOrder(1001)]
|
[IsHydroLinkPro]
|
[ReadOnly(true)]
|
[Browsable(true)]
|
public string StartCode { get; set; }
|
|
/// <summary>
|
/// 下游节点
|
/// </summary>
|
[Category("拓扑结构")]
|
[DisplayName("下游节点")]
|
[PropertyOrder(1002)]
|
[IsHydroLinkPro]
|
[ReadOnly(true)]
|
[Browsable(true)]
|
public string EndCode { get; set; }
|
|
/// <summary>
|
/// 管段状态
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("管段状态")]
|
[PropertyOrder(1003)]
|
[Browsable(true)]
|
public virtual string LinkStatus { get; set; }
|
|
/// <summary>
|
/// 流量
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("流量")]
|
[PropertyOrder(10001)]
|
[Browsable(true)]
|
[DisplayUnit("m³/h")]
|
[IsHydroCalcuPro]
|
[ShowEditor(false)]
|
public virtual double? CalcuFlow { get; set; }
|
|
/// <summary>
|
/// 流速
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("流速")]
|
[PropertyOrder(10002)]
|
[Browsable(true)]
|
[DisplayUnit("m/s")]
|
[IsHydroCalcuPro]
|
[ShowEditor(false)]
|
public virtual double? CalcuVelocity { get; set; }
|
|
/// <summary>
|
/// 水头损失
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("水头损失")]
|
[PropertyOrder(10003)]
|
[Browsable(true)]
|
[DisplayUnit("m")]
|
[IsHydroCalcuPro]
|
[ShowEditor(false)]
|
public virtual double? CalcuHeadLoss { get; set; }
|
|
|
/// <summary>
|
/// Vmo
|
/// </summary>
|
[Browsable(false)]
|
public new Yw.Model.HydroLinkInfo Vmo { get; set; }
|
|
/// <summary>
|
///
|
/// </summary>
|
public override void UpdateProperty()
|
{
|
base.UpdateProperty();
|
this.StartCode = this.Vmo.StartCode;
|
this.UpdatePropStatus(nameof(this.StartCode), this.Vmo, nameof(this.Vmo.StartCode));
|
this.EndCode = this.Vmo.EndCode;
|
this.UpdatePropStatus(nameof(this.EndCode), this.Vmo, nameof(this.Vmo.EndCode));
|
this.LinkStatus = HydroLinkStatusHelper.GetStatusName(this.Vmo.LinkStatus);
|
this.UpdatePropStatus(nameof(this.LinkStatus), this.Vmo, nameof(this.Vmo.LinkStatus));
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override void UpdateVmoProperty()
|
{
|
base.UpdateVmoProperty();
|
this.Vmo.StartCode = this.StartCode;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.StartCode), this, nameof(this.StartCode));
|
this.Vmo.EndCode = this.EndCode;
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.EndCode), this, nameof(this.EndCode));
|
this.Vmo.LinkStatus = HydroLinkStatusHelper.GetStatusCode(this.LinkStatus);
|
this.Vmo.UpdatePropStatus(nameof(this.Vmo.LinkStatus), this, nameof(this.LinkStatus));
|
}
|
|
/// <summary>
|
/// 更新计算属性
|
/// </summary>
|
/// <param name="rhs"></param>
|
public override void UpdateCalcuProperty(HydroCalcuResult 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;
|
}
|
}
|
|
|
}
|
}
|