namespace HStation.Service
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public static class XhsPhartGraphExtensions
|
{
|
//缓存时间
|
private const int _cache_time = 10;
|
|
#region 获取图形参数
|
|
/// <summary>
|
/// 获取 GraphParas
|
/// </summary>
|
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);
|
}
|
|
/// <summary>
|
/// 获取 GraphParas
|
/// </summary>
|
public static T GetGraphParas<T>(this Model.XhsPhartGraph rhs)
|
{
|
if (rhs == null)
|
{
|
return default;
|
}
|
var obj = rhs.GetGraphParas();
|
if (obj is T t)
|
{
|
return t;
|
}
|
return default;
|
}
|
|
#endregion
|
|
#region 获取几何参数
|
|
/// <summary>
|
/// 获取 GeometryParas
|
/// </summary>
|
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);
|
}
|
|
/// <summary>
|
/// 获取 GeometryParas
|
/// </summary>
|
public static T GetGeometryParas<T>(this Model.XhsPhartGraph rhs)
|
{
|
if (rhs == null)
|
{
|
return default;
|
}
|
var obj = rhs.GetGeometryParas();
|
if (obj is T t)
|
{
|
return t;
|
}
|
return default;
|
}
|
|
#endregion
|
|
#region 获取特性曲线
|
|
/// <summary>
|
/// 获取特性曲线
|
/// </summary>
|
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);
|
}
|
|
/// <summary>
|
/// 获取性能点列表
|
/// </summary>
|
public static List<Yw.Geometry.Point2d> 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
|
|
}
|
}
|