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