using Yw.Model;
namespace HStation.WinFrmUI
{
///
/// 可见列表辅助类
///
public class SimulationVisualListHelper
{
///
///
///
public SimulationVisualListHelper() { }
///
/// 水力信息
///
public HydroModelInfo HydroInfo
{
get { return _hydroInfo; }
private set { _hydroInfo = value; }
}
private HydroModelInfo _hydroInfo = null;
private Dictionary _dict;//字典
///
/// 初始化数据
///
public void InitialData(HydroModelInfo hydroInfo)
{
this.HydroInfo = hydroInfo;
if (this.HydroInfo == null)
{
return;
}
_dict = hydroInfo?.GetVisualDict();
}
///
/// 获取可见字典
///
public Dictionary GetVisualDict()
{
return _dict;
}
///
/// 获取可见列表
///
public List GetVisualList()
{
return _dict?.Values.ToList();
}
///
/// 获取节点列表
///
public List GetNodeList()
{
var nodes = _hydroInfo?.GetAllNodes();
return nodes;
}
///
/// 获取水源列表
///
public List GetSourceList()
{
var sources = _hydroInfo?.GetAllSources();
return sources;
}
///
/// 获取管段列表
///
public List GetLinkList()
{
var links = _hydroInfo?.GetAllLinks();
return links;
}
///
/// 获取可视构件
///
public HydroVisualInfo GetVisual(string code)
{
if (_dict == null || _dict.Count < 1)
{
return default;
}
if (_dict.ContainsKey(code))
{
return _dict[code];
}
return default;
}
///
/// 获取可视构件列表
///
public List GetVisualList(List codes)
{
if (codes == null || codes.Count < 1)
{
return default;
}
var list = codes.Select(x => GetVisual(x)).Where(x => x != null).ToList();
return list;
}
}
}