using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public static class HydroEnergyStatisticsHelper
|
{
|
/// <summary>
|
/// 获取统计列表
|
/// </summary>
|
public static List<HydroEnergyStatisticsItemViewModel> GetStatisticsList(this List<Yw.EPAnet.EnergyPoint> allEnergyList)
|
{
|
var allStatisticsList = new List<HydroEnergyStatisticsItemViewModel>();
|
if (allEnergyList != null && allEnergyList.Count > 0)
|
{
|
var allEnergyGroupList = allEnergyList.GroupBy(x => x.EnergyType).ToList();
|
foreach (var energyGroup in allEnergyGroupList)
|
{
|
var item = new HydroEnergyStatisticsItemViewModel();
|
switch (energyGroup.Key)
|
{
|
case EPAnet.eEnergyType.Input:
|
{
|
item.EnergyType = eEnergyType.Input;
|
item.EnergyName = eEnergyType.Input.GetDisplayText();
|
}
|
break;
|
case EPAnet.eEnergyType.Output:
|
{
|
item.EnergyType = eEnergyType.Output;
|
item.EnergyName = eEnergyType.Output.GetDisplayText();
|
}
|
break;
|
case EPAnet.eEnergyType.Promote:
|
{
|
item.EnergyType = eEnergyType.Promote;
|
item.EnergyName = eEnergyType.Promote.GetDisplayText();
|
}
|
break;
|
case EPAnet.eEnergyType.MinorLoss:
|
{
|
item.EnergyType = eEnergyType.MinorLoss;
|
item.EnergyName = eEnergyType.MinorLoss.GetDisplayText();
|
}
|
break;
|
case EPAnet.eEnergyType.FrictionalLoss:
|
{
|
item.EnergyType = eEnergyType.FrictionalLoss;
|
item.EnergyName = eEnergyType.FrictionalLoss.GetDisplayText();
|
}
|
break;
|
default: break;
|
}
|
item.EnergyValue = Math.Round(energyGroup.Sum(x => x.EnergyPower), 1);
|
allStatisticsList.Add(item);
|
}
|
}
|
return allStatisticsList.OrderBy(x => x.EnergyType).ToList();
|
}
|
|
}
|
}
|