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); } } }