namespace HStation.Service { /// /// /// public static class XhsPhartGraphExtensions { //缓存时间 private const int _cache_time = 10; #region 获取图形参数 /// /// 获取 GraphParas /// public static object GetGraphParas(this Model.XhsPhartGraph rhs) { if (rhs == null) { return default; } var key = $"{rhs.ID}:graph-paras"; return MemoryCacheHelper.GetSet(key, () => { object obj = null; switch ((eGraphType)rhs.GraphType) { case eGraphType.QH: { obj = Model.QHGraphParasModel.ToModel(rhs.GraphParas); } break; case eGraphType.QP: { obj = Model.QPGraphParasModel.ToModel(rhs.GraphParas); } break; case eGraphType.QE: { obj = Model.QEGraphParasModel.ToModel(rhs.GraphParas); } break; default: break; } return obj; }, _cache_time); } /// /// 获取 GraphParas /// public static T GetGraphParas(this Model.XhsPhartGraph rhs) { if (rhs == null) { return default; } var obj = rhs.GetGraphParas(); if (obj is T t) { return t; } return default; } #endregion #region 获取几何参数 /// /// 获取 GeometryParas /// public static object GetGeometryParas(this Model.XhsPhartGraph rhs) { if (rhs == null) { return default; } var key = $"{rhs.ID}:geometry-paras"; return MemoryCacheHelper.GetSet(key, () => { object obj = null; switch ((eGeometryStyle)rhs.GeometryStyle) { case eGeometryStyle.FeatCurve: { obj = Model.FeatCurveGeometryParasModel.ToModel(rhs.GraphParas); } break; default: break; } return obj; }, _cache_time); } /// /// 获取 GeometryParas /// public static T GetGeometryParas(this Model.XhsPhartGraph rhs) { if (rhs == null) { return default; } var obj = rhs.GetGeometryParas(); if (obj is T t) { return t; } return default; } #endregion #region 获取特性曲线 /// /// 获取特性曲线 /// public static Yw.Pump.PerformCurveBase GetPerformCurve(this Model.XhsPhartGraph rhs) { if (rhs == null) { return default; } var key = $"{rhs.ID}:perform-curve"; return MemoryCacheHelper.GetSet(key, () => { Yw.Pump.PerformCurveBase performCurve = null; switch ((eGeometryStyle)rhs.GeometryStyle) { case eGeometryStyle.FeatCurve: { performCurve = Yw.Pump.PerformCurveHelper.ToModel(rhs.GeometryInfo); } break; default: break; } return performCurve; }, _cache_time); } /// /// 获取性能点列表 /// public static List GetFeatPointList(this Model.XhsPhartGraph rhs, int pointNumber = 12, double minSpace = 0.0001) { var performCurve = rhs.GetPerformCurve(); if (performCurve == null || performCurve.IsInvalid()) { return default; } return performCurve.FeatCurve.GetPointList(pointNumber, minSpace); } #endregion } }