namespace Yw.WinFrmUI
{
///
///
///
public class HydroMonitorValueViewModel
{
///
///
///
public HydroMonitorValueViewModel() { }
///
///
///
public HydroMonitorValueViewModel
(
Yw.Vmo.HydroMonitorVmo vmo,
Yw.Model.HydroVisualInfo visual,
double? propValue
)
{
this.Relation = visual.Name;
this.PropName = HydroMonitorPropHelper.GetName(vmo.PropName);
this.UnitName = HydroMonitorPropHelper.GetUnit(vmo.PropName);
this.Flags = Yw.Untity.FlagsHelper.ToString(vmo.Flags);
this.SortCode = vmo.SortCode;
this.Description = vmo.Description;
this.Vmo = vmo;
if (propValue.HasValue)
{
UpdatePropValue(propValue.Value);
}
}
///
/// 构件
///
[DisplayName("构件")]
public string Relation { get; set; }
///
/// 名称
///
[DisplayName("名称")]
public string PropName { get; set; }
///
/// 监测值
///
[DisplayName("监测值")]
public double? PropValue { get; set; }
///
/// 单位
///
[DisplayName("单位")]
public string UnitName { get; set; }
///
/// 标签
///
[DisplayName("标签")]
public string Flags { get; set; }
///
/// 排序码
///
public int SortCode { get; set; }
///
/// 说明
///
[DisplayName("说明")]
public string Description { get; set; }
///
/// vmo
///
public Yw.Vmo.HydroMonitorVmo Vmo { get; set; }
///
/// 更新属性值
///
public void UpdatePropValue(double propValue)
{
switch (this.Vmo.PropName)
{
case Yw.Hydro.MonitorProp.CalcuQ:
{
this.PropValue = Math.Round(propValue, 1);
}
break;
case Yw.Hydro.MonitorProp.CalcuP:
{
this.PropValue = Math.Round(propValue, 1);
}
break;
case Yw.Hydro.MonitorProp.CalcuE:
{
this.PropValue = Math.Round(propValue, 1);
}
break;
case Yw.Hydro.MonitorProp.CalcuPr:
{
this.PropValue = Math.Round(propValue, 2);
}
break;
case Yw.Hydro.MonitorProp.CalcuO:
{
this.PropValue = Math.Round(propValue, 0);
}
break;
case Yw.Hydro.MonitorProp.CalcuO1:
{
this.PropValue = Math.Round(propValue, 0);
}
break;
case Yw.Hydro.MonitorProp.CalcuO2:
{
this.PropValue = Math.Round(propValue, 0);
}
break;
default: this.PropValue = Math.Round(propValue, 2); break;
}
}
///
/// 更新属性值
///
public void UpdatePropValue(double? propValue)
{
this.PropValue = propValue;
if (propValue.HasValue)
{
UpdatePropValue(propValue.Value);
}
}
}
}