lixiaojun
2024-11-23 d2dabd9187f2dc5a9f6ac3a90cf0577db1d883b8
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/03-vm/SimulationVisualVmListHelper.cs
@@ -1,4 +1,5 @@
using DevExpress.Mvvm.Native;
using Yw.EPAnet;
using Yw.Model;
namespace HStation.WinFrmUI
@@ -11,51 +12,39 @@
        /// <summary>
        /// 
        /// </summary>
        public SimulationVisualVmListHelper(SimulationVisualListHelper helper)
        public SimulationVisualVmListHelper(SimulationVisualListHelper visualListHelper, SimulationCalcuResultHelper calcuResultHelper)
        {
            _helper = helper;
            _visualListHelper = visualListHelper;
            _calcuResultHelper = calcuResultHelper;
        }
        private SimulationVisualListHelper _helper = null;//辅助类
        private HydroModelInfo _hydroInfo = null;//水力信息
        private SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类
        private SimulationCalcuResultHelper _calcuResultHelper = null;//计算结果辅助类
        private Dictionary<string, HydroVisualViewModel> _dict;//字典
        /// <summary>
        /// 初始化数据
        /// </summary>
        public void InitialData(HydroModelInfo hydroInfo, HydroCalcuResult calcuResult = null)
        {
            _hydroInfo = hydroInfo;
            if (_hydroInfo == null)
            {
                return;
            }
            var allVisualDict = _helper.GetVisualDict();
            if (allVisualDict != null && allVisualDict.Count > 0)
            {
                var allCalcuResultVisualDict = calcuResult?.GetVisualDict();
                _dict = new Dictionary<string, HydroVisualViewModel>();
                foreach (var visualKeyValue in allVisualDict)
                {
                    var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visualKeyValue.Value, _hydroInfo);
                    var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
                    if (calcuVisualResult != null)
                    {
                        vm.UpdateCalcuProperty(calcuVisualResult);
                    }
                    _dict.Add(visualKeyValue.Key, vm);
                }
            }
        }
        /// <summary>
        /// 获取可见视图字典
        /// </summary>
        public Dictionary<string, HydroVisualViewModel> GetVisualDict()
        {
            if (_hydroInfo == null)
            if (_dict == null)
            {
                return default;
                _dict = new Dictionary<string, HydroVisualViewModel>();
                var allVisualDict = _visualListHelper.GetVisualDict();
                if (allVisualDict != null && allVisualDict.Count > 0)
                {
                    var allCalcuResultVisualDict = _calcuResultHelper.GetVisualDict();
                    foreach (var visualKeyValue in allVisualDict)
                    {
                        var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visualKeyValue.Value, _visualListHelper.HydroInfo);
                        var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
                        if (calcuVisualResult != null)
                        {
                            vm.UpdateCalcuProperty(calcuVisualResult);
                        }
                        _dict.Add(visualKeyValue.Key, vm);
                    }
                }
            }
            return _dict;
        }
@@ -65,11 +54,8 @@
        /// </summary>
        public List<HydroVisualViewModel> GetVisualList()
        {
            if (_hydroInfo == null)
            {
                return default;
            }
            return _dict?.Values.ToList();
            var dict = GetVisualDict();
            return dict.Values.ToList();
        }
        /// <summary>
@@ -77,13 +63,10 @@
        /// </summary>
        public HydroVisualViewModel GetVisual(string code)
        {
            if (_dict == null || _dict.Count < 1)
            var dict = GetVisualDict();
            if (dict.ContainsKey(code))
            {
                return default;
            }
            if (_dict.ContainsKey(code))
            {
                return _dict[code];
                return dict[code];
            }
            return default;
        }
@@ -118,15 +101,8 @@
        /// </summary>
        public void UpdateProperty()
        {
            if (_hydroInfo == null)
            {
                return;
            }
            if (_dict == null || _dict.Count < 1)
            {
                return;
            }
            _dict.ForEach(x => x.Value.UpdateProperty());
            var dict = GetVisualDict();
            dict.ForEach(x => x.Value.UpdateProperty());
        }
        /// <summary>
@@ -169,16 +145,9 @@
        /// </summary>
        public void UpdateCalcuProperty(HydroCalcuResult calcuResult)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            if (_dict == null || _dict.Count < 1)
            {
                return;
            }
            var dict = GetVisualDict();
            var allCalcuResultVisualDict = calcuResult?.GetVisualDict();
            foreach (var visualKeyValue in _dict)
            foreach (var visualKeyValue in dict)
            {
                var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
                visualKeyValue.Value.UpdateCalcuProperty(calcuVisualResult);