| | |
| | | using Yw.Model; |
| | | |
| | | namespace Yw.WinFrmUI |
| | | namespace Yw.WinFrmUI |
| | | { |
| | | /// <summary> |
| | | /// 管道视图 |
| | | /// </summary> |
| | | public class HydroPipeViewModel : HydroLinkViewModel |
| | | public class HydroPipeViewModel : HydroLinkViewModel, IHydroCalcuPipeResult |
| | | { |
| | | /// <summary> |
| | | /// |
| | |
| | | public HydroPipeViewModel(Yw.Model.HydroPipeInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo) |
| | | { |
| | | this.Material = rhs.Material; |
| | | this.UpdatePropStatus(nameof(this.Material), rhs, nameof(rhs.Material)); |
| | | this.Diameter = Math.Round(rhs.Diameter, 0); |
| | | this.UpdatePropStatus(nameof(this.Diameter), rhs, nameof(rhs.Diameter)); |
| | | this.Length = Math.Round(rhs.Length, 4); |
| | | this.UpdatePropStatus(nameof(this.Length), rhs, nameof(rhs.Length)); |
| | | this.Roughness = rhs.Roughness; |
| | | this.UpdatePropStatus(nameof(this.Roughness), rhs, nameof(rhs.Roughness)); |
| | | this.MinorLoss = rhs.MinorLoss; |
| | | this.UpdatePropStatus(nameof(this.MinorLoss), rhs, nameof(rhs.MinorLoss)); |
| | | this.Vmo = rhs; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 管道状态 |
| | | /// 材质 |
| | | /// </summary> |
| | | [Category("数据")] |
| | | [DisplayName("管道状态")] |
| | | [PropertyOrder(13)] |
| | | [Browsable(true)] |
| | | [TypeConverter(typeof(HydroPipeStatusConverter))] |
| | | public override string LinkStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 材料 |
| | | /// </summary> |
| | | [Category("数据")] |
| | | [DisplayName("材料")] |
| | | [PropertyOrder(100)] |
| | | [Display(Name = "材质")] |
| | | [DisplayName("材质")] |
| | | [PropertyOrder(2001)] |
| | | [Browsable(true)] |
| | | public string Material { get; set; } |
| | | |
| | |
| | | /// 直径 |
| | | /// </summary> |
| | | [Category("数据")] |
| | | [Display(Name = "直径(mm)")] |
| | | [DisplayName("直径")] |
| | | [PropertyOrder(101)] |
| | | [DisplayUnit("mm")] |
| | | [Range(1, double.MaxValue)] |
| | | [PropertyOrder(2002)] |
| | | [Browsable(true)] |
| | | public double Diameter { get; set; } |
| | | public virtual double Diameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 长度 |
| | | /// </summary> |
| | | [Category("数据")] |
| | | [Display(Name = "长度(m)")] |
| | | [DisplayName("长度")] |
| | | [PropertyOrder(102)] |
| | | [DisplayUnit("m")] |
| | | [PropertyOrder(2003)] |
| | | [Browsable(true)] |
| | | public double Length { get; set; } |
| | | |
| | |
| | | /// 粗糙系数 |
| | | /// </summary> |
| | | [Category("数据")] |
| | | [Display(Name = "粗糙系数")] |
| | | [DisplayName("粗糙系数")] |
| | | [PropertyOrder(103)] |
| | | [Description("海森威廉公式系数")] |
| | | [PropertyOrder(2004)] |
| | | [Browsable(true)] |
| | | public double Roughness { get; set; } |
| | | |
| | |
| | | /// 局阻系数 |
| | | /// </summary> |
| | | [Category("数据")] |
| | | [Display(Name = "局阻系数")] |
| | | [DisplayName("局阻系数")] |
| | | [PropertyOrder(104)] |
| | | [Description("局部阻力系数")] |
| | | [PropertyOrder(2005)] |
| | | [Browsable(true)] |
| | | public double MinorLoss { 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/s")] |
| | | [Display(Name = "流速(m/s)")] |
| | | [PropertyOrder(19007)] |
| | | [HydroCalcuPro] |
| | | [ShowEditor(false)] |
| | | [Browsable(true)] |
| | | public override double? CalcuVelocity { 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> |
| | | [Category("计算结果")] |
| | | [DisplayName("沿程损失")] |
| | | [DisplayUnit("m")] |
| | | [Display(Name = "沿程损失(m)")] |
| | | [PropertyOrder(19009)] |
| | | [HydroCalcuPro] |
| | | [ShowEditor(false)] |
| | | [Browsable(true)] |
| | | public override double? CalcuFrictionLoss { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public new Yw.Model.HydroPipeInfo Vmo { get; set; } |
| | | |
| | | |
| | | [Browsable(false)] |
| | | public new Yw.Model.HydroPipeInfo Vmo |
| | | { |
| | | get { return _vmo as Yw.Model.HydroPipeInfo; } |
| | | set { _vmo = value; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新属性 |
| | |
| | | { |
| | | base.UpdateProperty(); |
| | | this.Material = this.Vmo.Material; |
| | | this.UpdatePropStatus(nameof(this.Material), this.Vmo, nameof(this.Vmo.Material)); |
| | | this.Diameter = this.Vmo.Diameter; |
| | | this.UpdatePropStatus(nameof(this.Diameter), this.Vmo, nameof(this.Vmo.Diameter)); |
| | | this.Length = this.Vmo.Length; |
| | | this.UpdatePropStatus(nameof(this.Length), this.Vmo, nameof(this.Vmo.Length)); |
| | | this.Length = Math.Round(this.Vmo.Length, 4); |
| | | this.Roughness = this.Vmo.Roughness; |
| | | this.UpdatePropStatus(nameof(this.Roughness), this.Vmo, nameof(this.Vmo.Roughness)); |
| | | this.MinorLoss = this.Vmo.MinorLoss; |
| | | this.UpdatePropStatus(nameof(this.MinorLoss), this.Vmo, nameof(this.Vmo.MinorLoss)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public override void UpdateVmoProperty() |
| | | { |
| | | base.UpdateVmoProperty(); |
| | | this.Vmo.Material = this.Material; |
| | | this.Vmo.Diameter = this.Diameter; |
| | | this.Vmo.Length = this.Length; |
| | | this.Vmo.Roughness = this.Roughness; |
| | | this.Vmo.MinorLoss = this.MinorLoss; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新计算属性 |
| | | /// </summary> |
| | | public override void UpdateCalcuProperty(HydroCalcuVisualResult rhs) |
| | | { |
| | | base.UpdateCalcuProperty(rhs); |
| | | if (rhs is HydroCalcuPipeResult calcuPipeProperty) |
| | | { |
| | | this.CalcuQ = calcuPipeProperty.CalcuQ.HasValue ? Math.Round(calcuPipeProperty.CalcuQ.Value, 1) : null; |
| | | this.CalcuPr1 = calcuPipeProperty.CalcuPr1.HasValue ? Math.Round(calcuPipeProperty.CalcuPr1.Value, 2) : null; |
| | | this.CalcuPr2 = calcuPipeProperty.CalcuPr2.HasValue ? Math.Round(calcuPipeProperty.CalcuPr2.Value, 2) : null; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |