namespace Yw.WinFrmUI
{
///
/// 监测点拓展
///
public static class HydroMonitorExtensions
{
///
/// 匹配
///
public static HydroMonitorVmo Matching(this List allMonitorList, string propName, List flags)
{
if (allMonitorList == null || allMonitorList.Count < 1)
{
return default;
}
var monitorList = allMonitorList.Where(x => x.PropName == propName).ToList();
monitorList = monitorList.OrderBy(x => x.Flags.Distinct().Count()).ToList();
return monitorList.Find(x => x.Flags.ContainsC(flags));
}
///
/// 获取属性值
///
public static double GetPropValue(this HydroMonitorVmo monitor, double propValue)
{
if (monitor == null)
{
return default;
}
double pv = 0;
switch (monitor.PropName)
{
case Yw.Hydro.MonitorProp.CalcuQ:
{
pv = Math.Round(propValue, 1);
}
break;
case Yw.Hydro.MonitorProp.CalcuP:
{
pv = Math.Round(propValue, 1);
}
break;
case Yw.Hydro.MonitorProp.CalcuE:
{
pv = Math.Round(propValue, 1);
}
break;
case Yw.Hydro.MonitorProp.CalcuPr:
{
pv = Math.Round(propValue, 2);
}
break;
case Yw.Hydro.MonitorProp.CalcuO:
{
pv = Math.Round(propValue, 0);
}
break;
case Yw.Hydro.MonitorProp.CalcuO1:
{
pv = Math.Round(propValue, 0);
}
break;
case Yw.Hydro.MonitorProp.CalcuO2:
{
pv = Math.Round(propValue, 0);
}
break;
default: pv = Math.Round(propValue, 2); break;
}
return pv;
}
///
/// 获取属性值
///
public static double? GetPropValue(this HydroMonitorVmo monitor, double? propValue)
{
if (monitor == null)
{
return default;
}
if (propValue == null)
{
return default;
}
return monitor.GetPropValue(propValue.Value);
}
}
}