namespace Yw.WinFrmUI { /// /// /// public static class HydroWorkingExtensions { /// /// 更新工况信息 /// public static void UpdateWorkingInfo(this Yw.Model.HydroModelInfo hydroInfo, string workingInfo) { hydroInfo.UpdateWorkingInfo(JsonHelper.Json2Object(workingInfo)); } /// /// 更新工况信息 /// public static void UpdateWorkingInfo(this Yw.Model.HydroModelInfo hydroInfo, HydroWorkingInfoViewModel workingInfo) { if (hydroInfo == null) { return; } if (workingInfo == null) { return; } #region 水库 if (hydroInfo.Reservoirs != null && hydroInfo.Reservoirs.Count > 0) { foreach (var visual in hydroInfo.Reservoirs) { var visualWorkingInfo = workingInfo.Reservoirs?.Find(x => x.Code == visual.Code); if (visualWorkingInfo != null) { visual.Head = visualWorkingInfo.Head; } } } #endregion #region 水池 var tanks = hydroInfo.GetAllTanks(); if (tanks != null && tanks.Count > 0) { foreach (var visual in tanks) { var visualWorkingInfo = workingInfo.Tanks?.Find(x => x.Code == visual.Code); if (visualWorkingInfo != null) { visual.InitLevel = visualWorkingInfo.InitLevel; } } } #endregion #region 水泵 if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0) { foreach (var visual in hydroInfo.Pumps) { var visualWorkingInfo = workingInfo.Pumps?.Find(x => x.Code == visual.Code); if (visualWorkingInfo != null) { visual.LinkStatus = visualWorkingInfo.LinkStatus; visual.SpeedRatio = visualWorkingInfo.CurrentHz / visual.RatedHz; } } } #endregion #region 阀门 if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0) { foreach (var visual in hydroInfo.Valves) { var visualWorkingInfo = workingInfo.Valves?.Find(x => x.Code == visual.Code); if (visualWorkingInfo != null) { visual.LinkStatus = visualWorkingInfo.LinkStatus; visual.OpeningDegree = visualWorkingInfo.OpeningDegree; } } } #endregion #region 阻件 var resistances = hydroInfo.GetAllResistances(); if (resistances != null && resistances.Count > 0) { foreach (var visual in resistances) { var visualWorkingInfo = workingInfo.Resistances?.Find(x => x.Code == visual.Code); if (visualWorkingInfo != null) { visual.LinkStatus = visualWorkingInfo.LinkStatus; } } } #endregion } /// /// 更新工况信息 /// public static void UpdateWorkingInfo(this Yw.Model.HydroPumpInfo pumpInfo, HydroWorkingPumpViewModel pumpWorkingInfo) { if (pumpInfo == null) { return; } if (pumpWorkingInfo == null) { return; } pumpInfo.LinkStatus = pumpWorkingInfo.LinkStatus; pumpInfo.SpeedRatio = pumpWorkingInfo.CurrentHz / pumpInfo.RatedHz; } /// /// 更新工况信息 /// public static void UpdateWorkingInfo(this Yw.Model.HydroPumpInfo pumpInfo, List allWorkingList) { if (pumpInfo == null) { return; } var workingInfo = allWorkingList?.Find(x => x.Code == pumpInfo.Code); pumpInfo.UpdateWorkingInfo(workingInfo); } } }