using Yw.Model;
|
|
namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 节点属性视图
|
/// </summary>
|
public class HydroNodePropertyViewModel : HydroParterPropertyViewModel, IHydroCalcuNodeResult
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public HydroNodePropertyViewModel() : base() { }
|
|
/// <summary>
|
///
|
/// </summary>
|
public HydroNodePropertyViewModel(Yw.Model.HydroNodeInfo rhs) : base(rhs)
|
{
|
this.Quality = rhs.Quality;
|
this.UpdatePropStatus(nameof(this.Quality), rhs, nameof(rhs.Quality));
|
}
|
|
/// <summary>
|
/// 初始水质
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("初始水质")]
|
[PropertyOrder(11)]
|
[Browsable(true)]
|
public double Quality { get; set; }
|
|
/// <summary>
|
/// 自由压力
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("自由压力")]
|
[PropertyOrder(10001)]
|
[DisplayUnit("m")]
|
[IsHydroCalcuPro(true)]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public double? CalcuPress { get; set; }
|
|
/// <summary>
|
/// 绝对压力
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("绝对压力")]
|
[PropertyOrder(10002)]
|
[DisplayUnit("m")]
|
[IsHydroCalcuPro(true)]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public double? CalcuHead { get; set; }
|
|
/// <summary>
|
/// 需水量
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("需水量")]
|
[PropertyOrder(10003)]
|
[DisplayUnit("m³/h")]
|
[IsHydroCalcuPro(true)]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public double? CalcuDemand { get; set; }
|
|
/// <summary>
|
/// 更新属性
|
/// </summary>
|
/// <param name="rhs"></param>
|
/// <param name="allParterList"></param>
|
public override void UpdateProperty(HydroParterInfo rhs, List<HydroParterInfo> allParterList)
|
{
|
base.UpdateProperty(rhs, allParterList);
|
if (rhs is Yw.Model.HydroNodeInfo hydroNodeInfo)
|
{
|
this.Quality = hydroNodeInfo.Quality;
|
this.UpdatePropStatus(nameof(this.Quality), rhs, nameof(hydroNodeInfo.Quality));
|
}
|
}
|
|
/// <summary>
|
/// 更新计算属性
|
/// </summary>
|
/// <param name="rhs"></param>
|
public override void UpdateCalcuProperty(IHydroCalcuResult rhs)
|
{
|
base.UpdateCalcuProperty(rhs);
|
if (rhs is IHydroCalcuNodeResult calcuNodeProperty)
|
{
|
this.CalcuPress = calcuNodeProperty.CalcuPress ?? Math.Round(calcuNodeProperty.CalcuPress.Value, 2);
|
this.CalcuHead = calcuNodeProperty.CalcuHead ?? Math.Round(calcuNodeProperty.CalcuHead.Value, 2);
|
this.CalcuDemand = calcuNodeProperty.CalcuDemand ?? Math.Round(calcuNodeProperty.CalcuDemand.Value, 1);
|
}
|
}
|
|
|
}
|
}
|