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