duheng
2024-12-11 2e8e85f65748ee5a5adf0dcda864aa4167cbf2ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using Yw.Model;
 
namespace HStation.WinFrmUI
{
    /// <summary>
    /// 可见列表辅助类
    /// </summary>
    public class SimulationVisualListHelper
    {
        /// <summary>
        /// 
        /// </summary>
        public SimulationVisualListHelper() { }
 
        /// <summary>
        /// 初始化事件
        /// </summary>
        public event Action InitialEvent;
 
        /// <summary>
        /// 水力信息
        /// </summary>
        public HydroModelInfo HydroInfo
        {
            get { return _hydroInfo; }
            private set { _hydroInfo = value; }
        }
        private HydroModelInfo _hydroInfo = null;
 
        //字典
        private Dictionary<string, HydroVisualInfo> _dict;
 
        /// <summary>
        /// 初始化数据
        /// </summary>
        public void InitialData(HydroModelInfo hydroInfo)
        {
            this.HydroInfo = hydroInfo;
            if (this.HydroInfo == null)
            {
                return;
            }
            _dict = hydroInfo.GetVisualDict();
            InitialEvent?.Invoke();
        }
 
        /// <summary>
        /// 获取可见字典
        /// </summary>
        public Dictionary<string, HydroVisualInfo> GetVisualDict()
        {
            return _dict;
        }
 
        /// <summary>
        /// 获取可见列表
        /// </summary>
        public List<HydroVisualInfo> GetVisualList()
        {
            return _dict?.Values.ToList();
        }
 
        /// <summary>
        /// 获取节点列表
        /// </summary>
        public List<HydroNodeInfo> GetNodeList()
        {
            var nodes = _hydroInfo?.GetAllNodes();
            return nodes;
        }
 
        /// <summary>
        /// 获取水源列表
        /// </summary>
        public List<HydroSourceInfo> GetSourceList()
        {
            var sources = _hydroInfo?.GetAllSources();
            return sources;
        }
 
        /// <summary>
        /// 获取管段列表
        /// </summary>
        public List<HydroLinkInfo> GetLinkList()
        {
            var links = _hydroInfo?.GetAllLinks();
            return links;
        }
 
        /// <summary>
        /// 获取可视构件
        /// </summary>
        public HydroVisualInfo GetVisual(string code)
        {
            if (_dict == null || _dict.Count < 1)
            {
                return default;
            }
            if (string.IsNullOrEmpty(code))
            {
                return default;
            }
            if (_dict.ContainsKey(code))
            {
                return _dict[code];
            }
            return default;
        }
 
        /// <summary>
        /// 获取可视构件列表
        /// </summary>
        public List<HydroVisualInfo> GetVisualList(List<string> codes)
        {
            if (codes == null || codes.Count < 1)
            {
                return default;
            }
            var list = codes.Select(x => GetVisual(x)).Where(x => x != null).ToList();
            return list;
        }
 
 
 
 
 
 
    }
}