using Yw.Vmo;
|
|
namespace HStation.WinFrmUI
|
{
|
/// <summary>
|
/// 工况辅助类
|
/// </summary>
|
public class SimulationWorkingTupleHelper
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public SimulationWorkingTupleHelper(SimulationVisualListHelper visualListHelper)
|
{
|
_visualListHelper = visualListHelper;
|
}
|
|
private SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类
|
private List<Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>> _allTupleList = null;//所有元组列表
|
|
/// <summary>
|
/// 获取元组列表
|
/// </summary>
|
public async Task<List<Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>>> GetTupleList()
|
{
|
if (_allTupleList == null)
|
{
|
_allTupleList = new List<Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>>();
|
var allWorkingList = await BLLFactory<Yw.BLL.HydroWorking>.Instance.GetByModelID(_visualListHelper.HydroInfo.ID);
|
allWorkingList?.ForEach(x =>
|
{
|
HydroCalcuResult calcuResult = null;
|
var checkResult = _visualListHelper.HydroInfo.Check();
|
if (checkResult != null && checkResult.Succeed)
|
{
|
calcuResult = _visualListHelper.HydroInfo.Calcu(CalcuMode.MinorLoss);
|
}
|
_allTupleList.Add(new Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>(x, checkResult, calcuResult));
|
});
|
}
|
return _allTupleList;
|
}
|
|
/// <summary>
|
/// 获取元组
|
/// </summary>
|
public async Task<Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>> GetTuple(HydroWorkingVmo working)
|
{
|
if (working == null)
|
{
|
return default;
|
}
|
var allTupleList = await GetTupleList();
|
return allTupleList?.Find(x => x.Item1.ID == working.ID);
|
}
|
|
/// <summary>
|
/// 获取检查结果
|
/// </summary>
|
public async Task<HydroCheckResult> GetCheckResult(HydroWorkingVmo working)
|
{
|
var tuple = await GetTuple(working);
|
return tuple?.Item2;
|
}
|
|
/// <summary>
|
/// 获取计算结果
|
/// </summary>
|
public async Task<HydroCalcuResult> GetCalcuResult(HydroWorkingVmo working)
|
{
|
var tuple = await GetTuple(working);
|
return tuple?.Item3;
|
}
|
|
/// <summary>
|
/// 获取工况列表
|
/// </summary>
|
public async Task<List<HydroWorkingVmo>> GetWorkingList()
|
{
|
var allTupleList = await GetTupleList();
|
return allTupleList?.Select(x => x.Item1).OrderBy(x => x.SortCode).ToList();
|
}
|
|
/// <summary>
|
/// 添加元组
|
/// </summary>
|
public async void AppendTuple(HydroWorkingVmo working, HydroCheckResult check, HydroCalcuResult calcu)
|
{
|
var allTupleList = await GetTupleList();
|
allTupleList.Add(new Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>(working, check, calcu));
|
}
|
|
/// <summary>
|
/// 移除元组
|
/// </summary>
|
public async void RemoveTuple(HydroWorkingVmo working)
|
{
|
var allTupleList = await GetTupleList();
|
if (allTupleList != null && allTupleList.Count > 0)
|
{
|
allTupleList.RemoveAll(x => x.Item1.ID == working.ID);
|
}
|
}
|
|
|
|
}
|
}
|