namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 水泵分析并联视图
|
/// </summary>
|
public class HydroPumpAnalyParallelViewModel
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public HydroPumpAnalyParallelViewModel() { }
|
|
/// <summary>
|
///
|
/// </summary>
|
public HydroPumpAnalyParallelViewModel(List<HydroPumpAnalyItemViewModel> allItemList)
|
{
|
if (allItemList == null || allItemList.Count < 1)
|
{
|
return;
|
}
|
this.Items = new List<HydroPumpAnalyParallelItemViewModel>();
|
var groupList = allItemList.GroupBy(x => x.BeginGroup).ToList();
|
foreach (var group in groupList)
|
{
|
var curveQhList = new List<Yw.Pump.CurveQH>();
|
var curveQpList = new List<Yw.Pump.CurveQP>();
|
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);
|
}
|
|
}
|
|
/// <summary>
|
/// 子集集合
|
/// </summary>
|
public List<HydroPumpAnalyParallelItemViewModel> Items { get; set; }
|
}
|
}
|