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
}
}