using DevExpress.Utils.Extensions; using Yw.Vmo; namespace HStation.WinFrmUI { /// /// 工况选择列表辅助类 /// public class SimulationWorkingCheckedListHelper { /// /// /// public SimulationWorkingCheckedListHelper(SimulationVisualListHelper visualListHelper) { _visualListHelper = visualListHelper; } private SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类 private Dictionary _allWorkingCheckedListDict = null;//所有工况选择列表字典 /// /// 初始化数据 /// public void InitialData(Dictionary allWorkingCheckedListDict) { _allWorkingCheckedListDict = allWorkingCheckedListDict; } /// /// 获取工况列表 /// public List GetWorkingList() { return _allWorkingCheckedListDict?.Keys.OrderBy(x => x.SortCode).ToList(); } /// /// 获取选择工况列表 /// public List GetCheckedWorkingList() { if (_allWorkingCheckedListDict == null) { return default; } return _allWorkingCheckedListDict.Where(x => x.Value).Select(x => x.Key).OrderBy(x => x.SortCode).ToList(); } /// /// 更新 /// public void Update(HydroWorkingVmo working) { if (working == null) { return; } if (_allWorkingCheckedListDict == null) { return; } var key = _allWorkingCheckedListDict.Keys.Where(x => x.ID == working.ID).FirstOrDefault(); if (key != null) { var hasChecked = _allWorkingCheckedListDict[key]; _allWorkingCheckedListDict.Remove(key); _allWorkingCheckedListDict.Add(working, hasChecked); } } /// /// 更新 /// public void Update(HydroWorkingVmo working, bool hasChecked) { if (working == null) { return; } if (_allWorkingCheckedListDict == null) { _allWorkingCheckedListDict = new Dictionary(); } var key = _allWorkingCheckedListDict.Keys.Where(x => x.ID == working.ID).FirstOrDefault(); if (key != null) { _allWorkingCheckedListDict.Remove(key); } _allWorkingCheckedListDict.Add(working, hasChecked); } /// /// 移除 /// public void Remove(HydroWorkingVmo working) { if (working == null) { return; } if (_allWorkingCheckedListDict == null) { return; } var key = _allWorkingCheckedListDict.Keys.ToList().Find(x => x.ID == working.ID); if (key != null) { _allWorkingCheckedListDict.Remove(key); } } } }