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