namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 组件视图
|
/// </summary>
|
public class HydroResistanceViewModel : HydroLinkViewModel, IHydroCalcuResistanceResult
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public HydroResistanceViewModel() { }
|
|
/// <summary>
|
///
|
/// </summary>
|
public HydroResistanceViewModel(Yw.Model.HydroResistanceInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo)
|
{
|
this.Elev = Math.Round(rhs.Elev, 4);
|
this.Material = rhs.Material;
|
this.Diameter = rhs.Diameter;
|
this.MinorLoss = rhs.MinorLoss;
|
this.CurveQL = rhs.CurveQL;
|
}
|
|
/// <summary>
|
/// 运行模式
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("运行模式")]
|
[Description("局阻模式:使用局阻系数进行水力计算;损失模式:使用水头损失曲线进行水力计算")]
|
[PropertyOrder(2001)]
|
[Browsable(true)]
|
public eResistanceMode ResistanceMode
|
{
|
get
|
{
|
var mode = eResistanceMode.Closed;
|
switch (this.Vmo.LinkStatus)
|
{
|
case Yw.Hydro.ResistanceStatus.Closed:
|
{
|
mode = eResistanceMode.Closed;
|
}
|
break;
|
case Yw.Hydro.ResistanceStatus.Open:
|
{
|
mode = eResistanceMode.MinorLoss;
|
}
|
break;
|
case Yw.Hydro.ResistanceStatus.None:
|
{
|
mode = eResistanceMode.CurveQL;
|
}
|
break;
|
default: break;
|
}
|
return mode;
|
}
|
set
|
{
|
switch (value)
|
{
|
case eResistanceMode.Closed:
|
{
|
this.Vmo.LinkStatus = Yw.Hydro.ResistanceStatus.Closed;
|
}
|
break;
|
case eResistanceMode.MinorLoss:
|
{
|
this.Vmo.LinkStatus = Yw.Hydro.ResistanceStatus.Open;
|
}
|
break;
|
case eResistanceMode.CurveQL:
|
{
|
this.Vmo.LinkStatus = Yw.Hydro.ResistanceStatus.None;
|
}
|
break;
|
default: break;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 标高
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("标高")]
|
[DisplayUnit("m")]
|
[Display(Name = "标高(m)")]
|
[PropertyOrder(2002)]
|
[Browsable(true)]
|
public double Elev { get; set; }
|
|
/// <summary>
|
/// 材料
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("材料")]
|
[PropertyOrder(2003)]
|
[Browsable(true)]
|
public string Material { get; set; }
|
|
/// <summary>
|
/// 直径
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("直径")]
|
[DisplayUnit("mm")]
|
[PropertyOrder(2004)]
|
[Browsable(true)]
|
public double Diameter { get; set; }
|
|
/// <summary>
|
/// 局阻系数
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("局阻系数")]
|
[PropertyOrder(2005)]
|
[Browsable(true)]
|
public double MinorLoss { get; set; }
|
|
/// <summary>
|
/// 水头损失曲线
|
/// </summary>
|
[Category("数据")]
|
[DisplayName("水头损失曲线")]
|
[PropertyOrder(2006)]
|
[HydroCurvePro(HydroCurve.Resistance, HydroCurveType.CurveQL)]
|
[Browsable(true)]
|
public virtual string CurveQL { get; set; }
|
|
/// <summary>
|
/// 流量
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("流量")]
|
[DisplayUnit("m³/h")]
|
[Display(Name = "流量(m³/h)")]
|
[PropertyOrder(11001)]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public virtual double? CalcuQ { get; set; }
|
|
/// <summary>
|
/// 进口压力
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("进口压力")]
|
[DisplayUnit("m")]
|
[Display(Name = "进口压力(m)")]
|
[PropertyOrder(11002)]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public virtual double? CalcuPr1 { get; set; }
|
|
/// <summary>
|
/// 出口压力
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("出口压力")]
|
[DisplayUnit("m")]
|
[Display(Name = "出口压力(m)")]
|
[PropertyOrder(11003)]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public virtual double? CalcuPr2 { get; set; }
|
|
/// <summary>
|
/// 局部损失
|
/// </summary>
|
[Category("计算结果")]
|
[DisplayName("局部损失")]
|
[DisplayUnit("m")]
|
[Display(Name = "局部损失(m)")]
|
[PropertyOrder(19008)]
|
[HydroCalcuPro]
|
[ShowEditor(false)]
|
[Browsable(true)]
|
public override double? CalcuMinorLoss { get; set; }
|
|
/// <summary>
|
///
|
/// </summary>
|
[Browsable(false)]
|
public new Yw.Model.HydroResistanceInfo Vmo
|
{
|
get { return _vmo as Yw.Model.HydroResistanceInfo; }
|
set { _vmo = value; }
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override void UpdateProperty()
|
{
|
base.UpdateProperty();
|
this.Elev = Math.Round(this.Vmo.Elev, 4);
|
this.Material = this.Vmo.Material;
|
this.Diameter = this.Vmo.Diameter;
|
this.MinorLoss = this.Vmo.MinorLoss;
|
this.CurveQL = this.Vmo.CurveQL;
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public override void UpdateVmoProperty()
|
{
|
base.UpdateVmoProperty();
|
this.Vmo.Elev = this.Elev;
|
this.Vmo.Material = this.Material;
|
this.Vmo.Diameter = this.Diameter;
|
this.Vmo.MinorLoss = this.MinorLoss;
|
this.Vmo.CurveQL = this.CurveQL;
|
}
|
|
/// <summary>
|
/// 更新计算属性
|
/// </summary>
|
public override void UpdateCalcuProperty(HydroCalcuVisualResult rhs)
|
{
|
base.UpdateCalcuProperty(rhs);
|
if (rhs is HydroCalcuResistanceResult calcuResistanceProperty)
|
{
|
this.CalcuQ = calcuResistanceProperty.CalcuQ.HasValue ? Math.Round(calcuResistanceProperty.CalcuQ.Value, 1) : null;
|
this.CalcuPr1 = calcuResistanceProperty.CalcuPr1.HasValue ? Math.Round(calcuResistanceProperty.CalcuPr1.Value, 2) : null;
|
this.CalcuPr2 = calcuResistanceProperty.CalcuPr2.HasValue ? Math.Round(calcuResistanceProperty.CalcuPr2.Value, 2) : null;
|
}
|
}
|
|
|
}
|
}
|