lixiaojun
2025-01-06 f373ad1f566c9c8679547f4205d86eb6e0836d59
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/03-calcu/01-result/SimulationCalcuResultHelper.cs
@@ -1,4 +1,6 @@
namespace HStation.WinFrmUI
using Yw.Vmo;
namespace HStation.WinFrmUI
{
    /// <summary>
    /// 计算结果辅助类
@@ -8,74 +10,117 @@
        /// <summary>
        /// 
        /// </summary>
        public SimulationCalcuResultHelper() { }
        public SimulationCalcuResultHelper
            (
                SimulationWorkingHelper workingHelper
            )
        {
            _workingHelper = workingHelper;
            workingHelper.InitialEvent += () => Initial();
            Initial();
        }
        /// <summary>
        /// 初始化事件
        /// </summary>
        public event Action InitialEvent;
        private SimulationWorkingHelper _workingHelper = null;//工况辅助类
        private Dictionary<string, HydroCalcuVisualResult> _dict;//计算结果可见字典
        //初始化
        private void Initial()
        {
            _dict = _workingHelper.CalcuResult?.GetVisualDict();
            this.InitialEvent?.Invoke();
        }
        /// <summary>
        /// 是否初始化
        /// </summary>
        public bool Initialized
        {
            get { return _workingHelper.Initialized; }
        }
        /// <summary>
        /// 水力信息
        /// </summary>
        public Yw.Model.HydroModelInfo HydroInfo
        {
            get { return _workingHelper.HydroInfo; }
        }
        /// <summary>
        /// 工况
        /// </summary>
        public HydroWorkingVmo Working
        {
            get { return _workingHelper.Working; }
        }
        /// <summary>
        /// 检查结果
        /// </summary>
        public HydroCheckResult CheckResult
        {
            get { return _workingHelper.CheckResult; }
        }
        /// <summary>
        /// 计算结果
        /// </summary>
        public HydroCalcuResult CalcuResult
        {
            get { return _calcuResult; }
            set
            {
                _dict = value?.GetVisualDict();
                _calcuResult = value;
            }
            get { return _workingHelper.CalcuResult; }
        }
        private HydroCalcuResult _calcuResult = null;
        private Dictionary<string, HydroCalcuVisualResult> _dict;//可见字典
        /// <summary>
        /// 获取可见结果字典
        /// 获取可见字典
        /// </summary>
        public Dictionary<string, HydroCalcuVisualResult> GetVisualResultDict()
        public Dictionary<string, HydroCalcuVisualResult> GetVisualDict()
        {
            return _dict;
        }
        /// <summary>
        /// 获取可见结果列表
        /// 获取可见列表
        /// </summary>
        public List<HydroCalcuVisualResult> GetVisualResultList()
        public List<HydroCalcuVisualResult> GetVisualList()
        {
            if (CalcuResult == null)
            {
                return default;
            }
            return _dict?.Values.ToList();
        }
        /// <summary>
        /// 获取可见结果
        /// 获取可见
        /// </summary>
        public HydroCalcuVisualResult GetVisualResult(string code)
        public HydroCalcuVisualResult GetVisual(string code)
        {
            return _dict?.GetValue(code);
        }
        /// <summary>
        /// 获取可见结果列表
        /// 获取可见列表
        /// </summary>
        public List<HydroCalcuVisualResult> GetVisualResultList(List<string> codes)
        public List<HydroCalcuVisualResult> GetVisualList(List<string> codes)
        {
            return codes?.Select(x => GetVisualResult(x)).Where(x => x != null).ToList();
            return codes?.Select(x => GetVisual(x)).Where(x => x != null).ToList();
        }
        /// <summary>
        /// 获取节点结果列表
        /// 获取节点列表
        /// </summary>
        public List<HydroCalcuNodeResult> GetNodeResultList()
        public List<HydroCalcuNodeResult> GetNodeList()
        {
            return CalcuResult?.NodeList?.ToList();
            return this.CalcuResult?.NodeList?.ToList();
        }
        /// <summary>
        /// 获取管段结果列表
        /// 获取管段列表
        /// </summary>
        public List<HydroCalcuLinkResult> GetLinkResultList()
        public List<HydroCalcuLinkResult> GetLinkList()
        {
            return CalcuResult?.LinkList?.ToList();
            return this.CalcuResult?.LinkList?.ToList();
        }