| | |
| | | using DevExpress.Mvvm.Native; |
| | | using Yw.EPAnet; |
| | | using Yw.Model; |
| | | |
| | | namespace HStation.WinFrmUI |
| | |
| | | /// <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; |
| | | } |
| | |
| | | /// </summary> |
| | | public List<HydroVisualViewModel> GetVisualList() |
| | | { |
| | | if (_hydroInfo == null) |
| | | { |
| | | return default; |
| | | } |
| | | return _dict?.Values.ToList(); |
| | | var dict = GetVisualDict(); |
| | | return dict.Values.ToList(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </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; |
| | | } |
| | |
| | | /// </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> |
| | |
| | | /// </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); |