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