duheng
2025-03-28 9be9ba4e159969fb5e32648c2c34e912ccc3ae6d
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-calcu/01-result/HydroCalcuResult.cs
@@ -1,36 +1,90 @@
namespace Yw.WinFrmUI
{
    /// <summary>
    /// 水力计算结果
    /// 计算结果
    /// </summary>
    public class HydroCalcuResult : IHydroCalcuResult
    public class HydroCalcuResult
    {
        /// <summary>
        /// 
        /// </summary>
        public HydroCalcuResult() { }
        /// <summary>
        ///
        /// </summary>
        public HydroCalcuResult(IHydroCalcuResult rhs)
        public HydroCalcuResult()
        {
            this.Code = rhs.Code;
            this.Succeed = true;
            this.FailedList = new List<HydroCalcuFailed>();
            this.NodeList = new List<HydroCalcuNodeResult>();
            this.LinkList = new List<HydroCalcuLinkResult>();
            this.WainingList = new List<HydroCalcuWarning>();
        }
        /// <summary>
        /// 
        /// </summary>
        public HydroCalcuResult(HydroCalcuResult rhs)
        public HydroCalcuResult(Yw.EPAnet.CalcuResult calcuResult)
        {
            this.Code = rhs.Code;
            this.Succeed = calcuResult.Succeed;
            this.FailedList = calcuResult.FailedList?.Select(x => new HydroCalcuFailed(x)).ToList();
            this.NodeList = calcuResult.NodeList?.Select(x => new HydroCalcuNodeResult(x)).ToList();
            this.LinkList = calcuResult.LinkList?.Select(x => new HydroCalcuLinkResult(x)).ToList();
            this.WainingList = new List<HydroCalcuWarning>();
            this.EPAnetCalcuResult = calcuResult;
        }
        /// <summary>
        /// 是否成功
        /// </summary>
        public bool Succeed { get; set; }
        /// <summary>
        /// 失败列表
        /// </summary>
        public List<HydroCalcuFailed> FailedList { get; set; }
        /// <summary>
        /// 节点列表
        /// </summary>
        public List<HydroCalcuNodeResult> NodeList { get; set; }
        /// <summary>
        /// 管段列表
        /// </summary>
        public List<HydroCalcuLinkResult> LinkList { get; set; }
        /// <summary>
        /// 警告列表
        /// </summary>
        public List<HydroCalcuWarning> WainingList { get; set; }
        /// <summary>
        /// EPAnet 计算结果
        /// </summary>
        public Yw.EPAnet.CalcuResult EPAnetCalcuResult { get; set; }
        /// <summary>
        /// 获取可见列表
        /// </summary>
        public List<HydroCalcuVisualResult> GetVisualList()
        {
            var list = new List<HydroCalcuVisualResult>();
            this.NodeList?.ForEach(x => list.Add(x));
            this.LinkList?.ForEach(x => list.Add(x));
            return list;
        }
        /// <summary>
        /// 获取可见字典
        /// </summary>
        public Dictionary<string, HydroCalcuVisualResult> GetVisualDict()
        {
            var allVisualList = GetVisualList();
            var dict = new Dictionary<string, HydroCalcuVisualResult>();
            allVisualList?.ForEach(x => dict.Add(x.Code, x));
            return dict;
        }
        /// <summary>
        /// 编码
        /// </summary>
        public string Code { get; set; }
    }
}