namespace Yw.WinFrmUI { /// /// /// public static class HydroModelInfoExtensions { /// /// 更新工况信息 /// public static void UpdateWorkingInfo(this Yw.Model.HydroModelInfo hydroInfo, HydroWorkingInfoViewModel workingInfo) { if (hydroInfo == null) { return; } if (workingInfo == null) { return; } //水箱 if (hydroInfo.Waterboxs != null && hydroInfo.Waterboxs.Count > 0) { foreach (var parter in hydroInfo.Waterboxs) { var parterWorkingInfo = workingInfo.Waterboxs?.Find(x => x.Code == parter.Code); if (parterWorkingInfo != null) { parter.InitLevel = parterWorkingInfo.InitLevel; } } } //水泵 if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0) { foreach (var parter in hydroInfo.Pumps) { var parterWorkingInfo = workingInfo.Pumps?.Find(x => x.Code == parter.Code); if (parterWorkingInfo != null) { parter.LinkStatus = parterWorkingInfo.LinkStatus; parter.SpeedRatio = Math.Round(parterWorkingInfo.CurrentHz / parter.RatedHz, 1); } } } //阀门 if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0) { foreach (var parter in hydroInfo.Valves) { var parterWorkingInfo = workingInfo.Valves?.Find(x => x.Code == parter.Code); if (parterWorkingInfo != null) { parter.LinkStatus = parterWorkingInfo.LinkStatus; parter.OpeningDegree = parterWorkingInfo.OpeningDegree; } } } //流量计 if (hydroInfo.Flowmeters != null && hydroInfo.Flowmeters.Count > 0) { foreach (var parter in hydroInfo.Flowmeters) { var parterWorkingInfo = workingInfo.Flowmeters?.Find(x => x.Code == parter.Code); if (parterWorkingInfo != null) { parter.CurrentFlow = parterWorkingInfo.CurrentFlow; } } } //压力表 if (hydroInfo.Pressmeters != null && hydroInfo.Pressmeters.Count > 0) { foreach (var parter in hydroInfo.Pressmeters) { var parterWorkingInfo = workingInfo.Pressmeters?.Find(x => x.Code == parter.Code); if (parterWorkingInfo != null) { parter.CurrentPress = parterWorkingInfo.CurrentPress; } } } } } }