namespace Yw.WinFrmUI
{
///
/// 水泵分析并联视图
///
public class HydroPumpAnalyParallelViewModel
{
///
///
///
public HydroPumpAnalyParallelViewModel() { }
///
///
///
public HydroPumpAnalyParallelViewModel(List allItemList)
{
if (allItemList == null || allItemList.Count < 1)
{
return;
}
this.Items = new List();
var groupList = allItemList.GroupBy(x => x.BeginGroup).ToList();
foreach (var group in groupList)
{
var curveQhList = new List();
var curveQpList = new List();
foreach (var item in group)
{
if (item.LinkStatus == Yw.Hydro.PumpStatus.Open)
{
var curveQh = new Yw.Pump.CurveQH(Ahart.eFeatType.Cubic, item.CurrentCurveQH);
curveQhList.Add(curveQh);
var curveQp = new Yw.Pump.CurveQP(Ahart.eFeatType.Cubic, item.CurrentCurveQP);
curveQpList.Add(curveQp);
}
}
var curveGroup = Yw.Pump.PerformParallelHelper.CalcuParallelPointList(curveQhList, curveQpList);
if (curveGroup.PointListQH == null || curveGroup.PointListQH.Count < 1)
{
continue;
}
var vmItem = new HydroPumpAnalyParallelItemViewModel();
vmItem.BeginGroup = group.Key;
vmItem.CurveQH = curveGroup.PointListQH;
vmItem.CurveQP = curveGroup.PointListQP;
vmItem.CurveQE = curveGroup.PointListQE;
vmItem.Items = group.ToList();
this.Items.Add(vmItem);
}
}
///
/// 子集集合
///
public List Items { get; set; }
}
}