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