using Yw.Vmo;
namespace HStation.WinFrmUI
{
///
/// 工况选择列表辅助类
///
public class SimulationWorkingCheckedListHelper
{
///
///
///
public SimulationWorkingCheckedListHelper()
{
}
private Dictionary _allWorkingCheckedListDict = null;//所有工况选择列表字典
///
/// 初始化数据
///
public void InitialData(Dictionary allWorkingCheckedListDict)
{
_allWorkingCheckedListDict = allWorkingCheckedListDict;
}
///
/// 获取工况字典
///
public Dictionary GetWorkingDict()
{
return _allWorkingCheckedListDict == null ? null : new Dictionary(_allWorkingCheckedListDict);
}
///
/// 获取工况列表
///
public List GetWorkingList()
{
return _allWorkingCheckedListDict?.Keys.OrderBy(x => x.SortCode).ToList();
}
///
/// 获取选择工况列表
///
public List GetCheckedWorkingList()
{
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);
}
}
}
}