namespace Yw.WinFrmUI { /// /// 水池视图 /// public class HydroTankViewModel : HydroSourceViewModel, IHydroCalcuTankResult { /// /// /// public HydroTankViewModel() { } /// /// /// public HydroTankViewModel(Yw.Model.HydroTankInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo) { this.PoolElev = Math.Round(rhs.PoolElev, 4); this.UpdatePropStatus(nameof(this.PoolElev), rhs, nameof(rhs.PoolElev)); this.InitLevel = Math.Round(rhs.InitLevel, 4); this.UpdatePropStatus(nameof(this.InitLevel), rhs, nameof(rhs.InitLevel)); this.MinLevel = Math.Round(rhs.MinLevel, 4); this.UpdatePropStatus(nameof(this.MinLevel), rhs, nameof(rhs.MinLevel)); this.MaxLevel = Math.Round(rhs.MaxLevel, 4); this.UpdatePropStatus(nameof(this.MaxLevel), rhs, nameof(rhs.MaxLevel)); this.DN = Math.Round(rhs.DN, 4); this.UpdatePropStatus(nameof(this.DN), rhs, nameof(rhs.DN)); this.MinVol = Math.Round(rhs.MinVol, 4); this.UpdatePropStatus(nameof(this.MinVol), rhs, nameof(rhs.MinVol)); this.VolCurve = rhs.VolCurve; this.UpdatePropStatus(nameof(this.VolCurve), rhs, nameof(rhs.VolCurve)); this.OverFlow = rhs.OverFlow; this.UpdatePropStatus(nameof(this.OverFlow), rhs, nameof(rhs.OverFlow)); } /// /// 池底标高 /// [Category("数据")] [DisplayName("池底标高")] [DisplayUnit("m")] [Display(Name = "池底标高(m)")] [HydroMarkPro] [PropertyOrder(1001)] [Browsable(true)] public double PoolElev { get; set; } /// /// 初始水位 /// [Category("数据")] [DisplayName("初始水位")] [DisplayUnit("m")] [Display(Name = "初始水位(m)")] [HydroMarkPro] [PropertyOrder(1002)] [Browsable(true)] public double InitLevel { get; set; } /// /// 最低水位 /// [Category("数据")] [DisplayName("最低水位")] [DisplayUnit("m")] [Display(Name = "最低水位(m)")] [HydroMarkPro] [PropertyOrder(1003)] [Browsable(true)] public double MinLevel { get; set; } /// /// 最高水位 /// [Category("数据")] [DisplayName("最高水位")] [DisplayUnit("m")] [Display(Name = "最高水位(m)")] [HydroMarkPro] [PropertyOrder(1004)] [Browsable(true)] public double MaxLevel { get; set; } /// /// 公称直径 /// [Category("数据")] [DisplayName("公称直径")] [DisplayUnit("m")] [Display(Name = "公称直径(m)")] [HydroMarkPro] [PropertyOrder(1005)] [Browsable(true)] public double DN { get; set; } /// /// 最小容积 /// [Category("数据")] [DisplayName("最小容积")] [DisplayUnit("m³")] [Display(Name = "最小容积(m³)")] [HydroMarkPro] [PropertyOrder(1006)] [Browsable(true)] public double MinVol { get; set; } /// /// 容积曲线 /// [Category("数据")] [DisplayName("容积曲线")] [Display(Name = "容积曲线")] [PropertyOrder(1007)] [HydroCurvePro(HydroCurve.Tank, HydroCurveType.CurveVol)] [ShowEditorInView(true)] [Browsable(false)] public string Curve { get { if (string.IsNullOrEmpty(this.VolCurve)) { return "未配置"; } return "已配置"; } } /// /// 容积曲线 /// [Category("数据")] [DisplayName("容积曲线")] [Display(Name = "容积曲线")] [PropertyOrder(1008)] [HydroCurvePro(HydroCurve.Tank, HydroCurveType.CurveVol)] [ShowEditorInView(true)] [Browsable(true)] public string VolCurve { get; set; } /// /// 允许溢流 /// [Category("数据")] [DisplayName("允许溢流")] [Display(Name = "允许溢流")] [PropertyOrder(1009)] [Browsable(true)] public bool OverFlow { get; set; } /// /// /// [Browsable(false)] public new Yw.Model.HydroTankInfo Vmo { get { return _vmo as Yw.Model.HydroTankInfo; } set { _vmo = value; } } /// /// /// public override void UpdateProperty() { base.UpdateProperty(); this.PoolElev = Math.Round(this.Vmo.PoolElev, 4); this.UpdatePropStatus(nameof(this.PoolElev), this.Vmo, nameof(this.Vmo.PoolElev)); this.InitLevel = Math.Round(this.Vmo.InitLevel, 4); this.UpdatePropStatus(nameof(this.InitLevel), this.Vmo, nameof(this.Vmo.InitLevel)); this.MinLevel = Math.Round(this.Vmo.MinLevel, 4); this.UpdatePropStatus(nameof(this.MinLevel), this.Vmo, nameof(this.Vmo.MinLevel)); this.MaxLevel = Math.Round(this.Vmo.MaxLevel, 4); this.UpdatePropStatus(nameof(this.MaxLevel), this.Vmo, nameof(this.Vmo.MaxLevel)); this.DN = Math.Round(this.Vmo.DN, 4); this.UpdatePropStatus(nameof(this.DN), this.Vmo, nameof(this.Vmo.DN)); this.MinVol = Math.Round(this.Vmo.MinVol, 4); this.UpdatePropStatus(nameof(this.MinVol), this.Vmo, nameof(this.Vmo.MinVol)); this.VolCurve = this.Vmo.VolCurve; this.UpdatePropStatus(nameof(this.VolCurve), this.Vmo, nameof(this.Vmo.VolCurve)); this.OverFlow = this.Vmo.OverFlow; this.UpdatePropStatus(nameof(this.OverFlow), this.Vmo, nameof(this.Vmo.OverFlow)); } /// /// /// public override void UpdateVmoProperty() { base.UpdateVmoProperty(); this.Vmo.PoolElev = Math.Round(this.PoolElev, 4); this.Vmo.UpdatePropStatus(nameof(this.Vmo.PoolElev), this, nameof(this.PoolElev)); this.Vmo.InitLevel = Math.Round(this.InitLevel, 4); this.Vmo.UpdatePropStatus(nameof(this.Vmo.InitLevel), this, nameof(this.InitLevel)); this.Vmo.MinLevel = Math.Round(this.MinLevel, 4); this.Vmo.UpdatePropStatus(nameof(this.Vmo.MinLevel), this, nameof(this.MinLevel)); this.Vmo.MaxLevel = Math.Round(this.MaxLevel, 4); this.Vmo.UpdatePropStatus(nameof(this.Vmo.MaxLevel), this, nameof(this.MaxLevel)); this.Vmo.DN = Math.Round(this.DN, 4); this.Vmo.UpdatePropStatus(nameof(this.Vmo.DN), this, nameof(this.DN)); this.Vmo.MinVol = Math.Round(this.MinVol, 4); this.Vmo.UpdatePropStatus(nameof(this.Vmo.MinVol), this, nameof(this.MinVol)); this.Vmo.VolCurve = this.VolCurve; this.Vmo.UpdatePropStatus(nameof(this.Vmo.VolCurve), this, nameof(this.VolCurve)); this.Vmo.OverFlow = this.OverFlow; this.Vmo.UpdatePropStatus(nameof(this.Vmo.OverFlow), this, nameof(this.OverFlow)); } } }