namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public static class HydroWorkingExtensions
|
{
|
|
/// <summary>
|
/// 更新工况信息
|
/// </summary>
|
public static void UpdateWorkingInfo(this Yw.Model.HydroModelInfo hydroInfo, string workingInfo)
|
{
|
hydroInfo.UpdateWorkingInfo(JsonHelper.Json2Object<HydroWorkingInfoViewModel>(workingInfo));
|
}
|
|
/// <summary>
|
/// 更新工况信息
|
/// </summary>
|
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
|
|
|
}
|
|
/// <summary>
|
/// 更新工况信息
|
/// </summary>
|
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;
|
}
|
|
/// <summary>
|
/// 更新工况信息
|
/// </summary>
|
public static void UpdateWorkingInfo(this Yw.Model.HydroPumpInfo pumpInfo, List<HydroWorkingPumpViewModel> allWorkingList)
|
{
|
if (pumpInfo == null)
|
{
|
return;
|
}
|
var workingInfo = allWorkingList?.Find(x => x.Code == pumpInfo.Code);
|
pumpInfo.UpdateWorkingInfo(workingInfo);
|
}
|
|
|
}
|
}
|