using Eventech.Common;
using IStation.Model;
using System.Collections.Generic;
using System.Linq;
namespace IStation.WinFrmUI.Basic
{
///
/// 泵曲线导出
///
public class PumpCurveDtoHelper
{
static string CurveKey = "Client";
public static string ExportJson(Model.PumpCurve rhs)
{
var pumpCurve = ExportDto(rhs);
if (pumpCurve == null)
return default;
return pumpCurve.ToJson();
}
public static Model.PumpCurveDto ExportDto(Model.PumpCurve rhs)
{
if (rhs == null)
return default;
var pumpCurve = new Model.PumpCurveDto();
pumpCurve.Name = rhs.CurveCode;
pumpCurve.SourceWay = rhs.SourceFrom;
pumpCurve.CreateMethod = rhs.CreateMethod.GetDisplayText();
pumpCurve.ReliabilityStatus = rhs.ReliabilityStatus;
pumpCurve.InputTime = rhs.CreateTime;
pumpCurve.Description = rhs.Description;
pumpCurve.CoordParas = new Dictionary();
if (rhs.CoordParas != null)
{
var coordParas = new Model.CurveCoordinateParasDto();
coordParas.GridNumberX = rhs.CoordParas.GridNumberX;
coordParas.GridNumberY = rhs.CoordParas.GridNumberY;
coordParas.CoordMinQ = rhs.CoordParas.CoordMinQ;
coordParas.CoordSpaceQ = rhs.CoordParas.CoordSpaceQ;
coordParas.CoordMinH = rhs.CoordParas.CoordMinH;
coordParas.CoordSpaceH = rhs.CoordParas.CoordSpaceH;
coordParas.StartLineNoH = rhs.CoordParas.StartLineNoH;
coordParas.EndLineNoH = rhs.CoordParas.EndLineNoH;
coordParas.CoordMinP = rhs.CoordParas.CoordMinP;
coordParas.CoordSpaceP = rhs.CoordParas.CoordSpaceP;
coordParas.StartLineNoP = rhs.CoordParas.StartLineNoP;
coordParas.EndLineNoP = rhs.CoordParas.EndLineNoP;
coordParas.DispPanelQP = rhs.CoordParas.DispPanelQP;
coordParas.CoordMinE = rhs.CoordParas.CoordMinE;
coordParas.CoordSpaceE = rhs.CoordParas.CoordSpaceE;
coordParas.StartLineNoE = rhs.CoordParas.StartLineNoE;
coordParas.EndLineNoE = rhs.CoordParas.EndLineNoE;
coordParas.DispPanelQE = rhs.CoordParas.DispPanelQE;
pumpCurve.CoordParas.Add(CurveKey, coordParas.ToJson());
}
if (rhs.CurveInfo != null)
{
var curveInfo = new Model.FeatCurveExpressGroupDto();
if (rhs.CurveInfo.CurveQH != null)
{
curveInfo.CurveQH = new Model.CurveExpressDto();
curveInfo.CurveQH.FitType = rhs.CurveInfo.CurveQH.FitType;
var definePoints = rhs.CurveInfo.CurveQH.DefinePoints;
if (definePoints == null)
{
definePoints = rhs.CurveInfo.CurveQH.GetFitPoints(12);
}
curveInfo.CurveQH.DefinePoints = definePoints?.Select(x => new CurvePointDto(x.X, x.Y)).ToList();
}
if (rhs.CurveInfo.CurveQE != null)
{
curveInfo.CurveQE = new Model.CurveExpressDto();
curveInfo.CurveQE.FitType = rhs.CurveInfo.CurveQE.FitType;
var definePoints = rhs.CurveInfo.CurveQE.DefinePoints;
if (definePoints == null)
{
definePoints = rhs.CurveInfo.CurveQE.GetFitPoints(12);
}
curveInfo.CurveQE.DefinePoints = definePoints?.Select(x => new CurvePointDto(x.X, x.Y)).ToList();
}
if (rhs.CurveInfo.CurveQP != null)
{
curveInfo.CurveQP = new Model.CurveExpressDto();
curveInfo.CurveQP.FitType = rhs.CurveInfo.CurveQP.FitType;
var definePoints = rhs.CurveInfo.CurveQP.DefinePoints;
if (definePoints == null)
{
definePoints = rhs.CurveInfo.CurveQP.GetFitPoints(12);
}
curveInfo.CurveQP.DefinePoints = definePoints?.Select(x => new CurvePointDto(x.X, x.Y)).ToList();
}
pumpCurve.CurveExpress = curveInfo;
}
return pumpCurve;
}
}
}