using Yw.Model; namespace Yw.WinFrmUI { /// /// 水力更改辅助类 /// public class HydroChangeHelper { /// /// /// public HydroChangeHelper(Yw.Model.HydroModelInfo hydroInfo) { _hydroInfo = hydroInfo; } private readonly Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息 private List _addParterList = new();//增加构件列表 private List _updateParterList = new();//更新构件列表 private List _removeParterList = new(); //移除构件列表 /// /// 附加 /// public void Append(HydroParterInfo parter, eChangeType changeType) { if (parter == null) { return; } var allParterList = _hydroInfo.GetAllParters(); switch (changeType) { case eChangeType.Add: { if (!_addParterList.Exists(x => x.Code == parter.Code)) { if (allParterList.Exists(x => x.Code == parter.Code)) { _addParterList.Add(parter); } } } break; case eChangeType.Update: { if (!_updateParterList.Exists(x => x.Code == parter.Code)) { if (allParterList.Exists(x => x.Code == parter.Code)) { if (!_addParterList.Exists(x => x.Code == parter.Code)) { _updateParterList.Add(parter); } } } } break; case eChangeType.Remove: { if (!_removeParterList.Exists(x => x.Code == parter.Code)) { if (!allParterList.Exists(x => x.Code == parter.Code)) { _removeParterList.Add(parter); } } } break; default: break; } } /// /// 获取新增构件列表 /// public List GetAddParterList() { return _addParterList.ToList(); } /// /// 获取更新构件列表 /// public List GetUpdateParterList() { return _updateParterList.ToList(); } /// /// 获取移除构件列表 /// public List GetRemoveParters() { return _removeParterList.Select(x => x.Code).Distinct().ToList(); } /// /// 重置 /// public void Reset() { _addParterList.Clear(); _updateParterList.Clear(); _removeParterList.Clear(); } } }