| | |
| | | } |
| | | var input = new AssetsMatchingViewModel(); |
| | | |
| | | |
| | | //水泵 |
| | | input.PumpMatchingList = hydroInfo.Pumps?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | |
| | |
| | | input.PipeMatchingList = hydroInfo.Pipes?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | |
| | | //弯头 |
| | | input.ElbowsMatchingList = hydroInfo.Elbows?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | input.ElbowMatchingList = hydroInfo.Elbows?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | |
| | | //三通 |
| | | input.ThreelinkMatchingList = hydroInfo.Threelinks?.Select(x => Create(hydroInfo, x)).ToList(); |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 应用 |
| | | |
| | | /// <summary> |
| | | /// 应用资产自动匹配ViewModel |
| | | /// </summary> |
| | |
| | | bool result = false; |
| | | |
| | | //水泵 |
| | | if (output.PumpMatchingList != null && output.PumpMatchingList.Count > 0) |
| | | output.PumpMatchingList?.ForEach(x => |
| | | { |
| | | if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0) |
| | | if (Apply(hydroInfo, x)) |
| | | { |
| | | foreach (var pumpMatching in output.PumpMatchingList) |
| | | { |
| | | var pump = hydroInfo.Pumps.Find(x => x.Code == pumpMatching.Code); |
| | | if (pump != null) |
| | | { |
| | | pump.DbLocked = pumpMatching.DbLocked; |
| | | pump.ModelType = pumpMatching.ModelType; |
| | | pump.RatedP = pumpMatching.RatedP; |
| | | pump.RatedQ = pumpMatching.RatedQ; |
| | | pump.RatedH = pumpMatching.RatedH; |
| | | pump.RatedN = pumpMatching.RatedN; |
| | | |
| | | if (!pump.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(pumpMatching.MatchingModelType)) |
| | | { |
| | | pump.ModelType = pumpMatching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(pumpMatching.MatchingDbId)) |
| | | { |
| | | pump.DbId = pumpMatching.MatchingDbId; |
| | | } |
| | | if (pumpMatching.MatchingRatedP.HasValue) |
| | | { |
| | | pump.RatedP = pumpMatching.MatchingRatedP.Value; |
| | | } |
| | | if (pumpMatching.MatchingRatedQ.HasValue) |
| | | { |
| | | pump.RatedQ = pumpMatching.MatchingRatedQ.Value; |
| | | } |
| | | if (pumpMatching.MatchingRatedH.HasValue) |
| | | { |
| | | pump.RatedH = pumpMatching.MatchingRatedH.Value; |
| | | } |
| | | if (pumpMatching.MatchingRatedN.HasValue) |
| | | { |
| | | pump.RatedN = pumpMatching.MatchingRatedN.Value; |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(pumpMatching.MatchingCurveDbId)) |
| | | { |
| | | //流量扬程曲线 |
| | | var curveqh = hydroInfo.Curves?.Find(x => x.Code == pump.CurveQH); |
| | | if (curveqh == null) |
| | | { |
| | | curveqh = new Yw.Model.HydroCurveInfo(); |
| | | curveqh.Catalog = Yw.Hydro.ParterCatalog.Curve; |
| | | curveqh.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", GetAllCodeList(hydroInfo)); |
| | | curveqh.Name = "匹配"; |
| | | curveqh.ModelType = string.Empty; |
| | | curveqh.DbLocked = false; |
| | | curveqh.DbId = pumpMatching.MatchingCurveDbId; |
| | | curveqh.CurveType = Yw.WinFrmUI.HydroCurve.PumpQH; |
| | | curveqh.CurveData = pumpMatching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | if (hydroInfo.Curves == null) |
| | | { |
| | | hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); |
| | | } |
| | | hydroInfo.Curves.Add(curveqh); |
| | | pump.CurveQH = curveqh.Code; |
| | | } |
| | | else |
| | | { |
| | | if (!curveqh.DbLocked) |
| | | { |
| | | curveqh.DbId = pumpMatching.MatchingDbId; |
| | | curveqh.CurveData = pumpMatching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | } |
| | | } |
| | | |
| | | //流量功率曲线 |
| | | var curveqp = hydroInfo.Curves?.Find(x => x.Code == pump.CurveQP); |
| | | if (curveqp == null) |
| | | { |
| | | curveqp = new Yw.Model.HydroCurveInfo(); |
| | | curveqp.Catalog = Yw.Hydro.ParterCatalog.Curve; |
| | | curveqp.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", GetAllCodeList(hydroInfo)); |
| | | curveqp.Name = "匹配"; |
| | | curveqp.ModelType = string.Empty; |
| | | curveqp.DbLocked = false; |
| | | curveqp.DbId = pumpMatching.MatchingCurveDbId; |
| | | curveqp.CurveType = Yw.WinFrmUI.HydroCurve.PumpQP; |
| | | curveqp.CurveData = pumpMatching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | if (hydroInfo.Curves == null) |
| | | { |
| | | hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); |
| | | } |
| | | hydroInfo.Curves.Add(curveqp); |
| | | pump.CurveQP = curveqp.Code; |
| | | } |
| | | else |
| | | { |
| | | if (!curveqp.DbLocked) |
| | | { |
| | | curveqp.DbId = pumpMatching.MatchingDbId; |
| | | curveqp.CurveData = pumpMatching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | } |
| | | } |
| | | |
| | | //流量效率曲线 |
| | | var curveqe = hydroInfo.Curves?.Find(x => x.Code == pump.CurveQE); |
| | | if (curveqe == null) |
| | | { |
| | | curveqe = new Yw.Model.HydroCurveInfo(); |
| | | curveqe.Catalog = Yw.Hydro.ParterCatalog.Curve; |
| | | curveqe.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", GetAllCodeList(hydroInfo)); |
| | | curveqe.Name = "匹配"; |
| | | curveqe.ModelType = string.Empty; |
| | | curveqe.DbLocked = false; |
| | | curveqe.DbId = pumpMatching.MatchingCurveDbId; |
| | | curveqe.CurveType = Yw.WinFrmUI.HydroCurve.PumpQE; |
| | | curveqe.CurveData = pumpMatching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | if (hydroInfo.Curves == null) |
| | | { |
| | | hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); |
| | | } |
| | | hydroInfo.Curves.Add(curveqe); |
| | | pump.CurveQE = curveqe.Code; |
| | | } |
| | | else |
| | | { |
| | | if (!curveqe.DbLocked) |
| | | { |
| | | curveqe.DbId = pumpMatching.MatchingDbId; |
| | | curveqe.CurveData = pumpMatching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | result = true; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | //阀门 |
| | | if (output.ValveMatchingList != null && output.PumpMatchingList.Count > 0) |
| | | output.ValveMatchingList?.ForEach(x => |
| | | { |
| | | if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0) |
| | | if (Apply(hydroInfo, x)) |
| | | { |
| | | foreach (var valveMatching in output.ValveMatchingList) |
| | | { |
| | | var valve = hydroInfo.Valves.Find(x => x.Code == valveMatching.Code); |
| | | if (valve != null) |
| | | { |
| | | valve.DbLocked = valveMatching.DbLocked; |
| | | valve.ModelType = valveMatching.ModelType; |
| | | valve.Diameter = valveMatching.Diameter; |
| | | valve.Material = valveMatching.Material; |
| | | valve.MinorLoss = valveMatching.MinorLoss; |
| | | valve.ValveType = valveMatching.ValveType; |
| | | valve.ValveSetting = valveMatching.ValveSetting; |
| | | |
| | | if (!valve.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(valveMatching.MatchingModelType)) |
| | | { |
| | | valve.ModelType = valveMatching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(valveMatching.MatchingDbId)) |
| | | { |
| | | valve.DbId = valveMatching.MatchingDbId; |
| | | } |
| | | if (valveMatching.MatchingDiameter.HasValue) |
| | | { |
| | | valve.Diameter = valveMatching.MatchingDiameter.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(valveMatching.MatchingMaterial)) |
| | | { |
| | | valve.Material = valveMatching.MatchingMaterial; |
| | | } |
| | | if (valveMatching.MatchingMinorLoss.HasValue) |
| | | { |
| | | valve.MinorLoss = valveMatching.MatchingMinorLoss.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(valveMatching.MatchingValveType)) |
| | | { |
| | | valve.ValveType = valveMatching.MatchingValveType; |
| | | } |
| | | if (!string.IsNullOrEmpty(valveMatching.MatchingValveSetting)) |
| | | { |
| | | valve.ValveSetting = valveMatching.MatchingValveSetting; |
| | | } |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | result = true; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | //管道 |
| | | if (output.PipeMatchingList != null && output.PipeMatchingList.Count > 0) |
| | | output.PipeMatchingList?.ForEach(x => |
| | | { |
| | | if (hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0) |
| | | if (Apply(hydroInfo, x)) |
| | | { |
| | | foreach (var pipeMatching in output.PipeMatchingList) |
| | | { |
| | | var pipe = hydroInfo.Pipes.Find(x => x.Code == pipeMatching.Code); |
| | | if (pipe != null) |
| | | { |
| | | pipe.DbLocked = pipeMatching.DbLocked; |
| | | pipe.ModelType = pipeMatching.ModelType; |
| | | pipe.Diameter = pipeMatching.Diameter; |
| | | pipe.Material = pipeMatching.Material; |
| | | pipe.Roughness = pipeMatching.Roughness; |
| | | pipe.MinorLoss = pipeMatching.MinorLoss; |
| | | |
| | | if (!pipe.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(pipeMatching.MatchingModelType)) |
| | | { |
| | | pipe.ModelType = pipeMatching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(pipeMatching.MatchingDbId)) |
| | | { |
| | | pipe.DbId = pipeMatching.MatchingDbId; |
| | | } |
| | | if (pipeMatching.MatchingDiameter.HasValue) |
| | | { |
| | | pipe.Diameter = pipeMatching.MatchingDiameter.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(pipeMatching.MatchingMaterial)) |
| | | { |
| | | pipe.Material = pipeMatching.MatchingMaterial; |
| | | } |
| | | if (pipeMatching.MatchingRoughness.HasValue) |
| | | { |
| | | pipe.Roughness = pipeMatching.MatchingRoughness.Value; |
| | | } |
| | | if (pipeMatching.MatchingMinorLoss.HasValue) |
| | | { |
| | | pipe.MinorLoss = pipeMatching.MatchingMinorLoss.Value; |
| | | } |
| | | |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | result = true; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | //弯头 |
| | | if (output.ElbowsMatchingList != null && output.ElbowsMatchingList.Count > 0) |
| | | output.ElbowMatchingList?.ForEach(x => |
| | | { |
| | | if (hydroInfo.Elbows != null && hydroInfo.Elbows.Count > 0) |
| | | if (Apply(hydroInfo, x)) |
| | | { |
| | | foreach (var elbowsMatching in output.ElbowsMatchingList) |
| | | { |
| | | var elbows = hydroInfo.Elbows.Find(x => x.Code == elbowsMatching.Code); |
| | | if (elbows != null) |
| | | { |
| | | elbows.DbLocked = elbowsMatching.DbLocked; |
| | | elbows.ModelType = elbowsMatching.ModelType; |
| | | elbows.Caliber = elbowsMatching.Caliber; |
| | | elbows.Material = elbowsMatching.Material; |
| | | elbows.MinorLoss = elbowsMatching.MinorLoss; |
| | | |
| | | if (!elbows.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(elbowsMatching.MatchingModelType)) |
| | | { |
| | | elbows.ModelType = elbowsMatching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(elbowsMatching.MatchingDbId)) |
| | | { |
| | | elbows.DbId = elbowsMatching.MatchingDbId; |
| | | } |
| | | if (elbowsMatching.MatchingCaliber.HasValue) |
| | | { |
| | | elbows.Caliber = elbowsMatching.MatchingCaliber.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(elbowsMatching.MatchingMaterial)) |
| | | { |
| | | elbows.Material = elbowsMatching.MatchingMaterial; |
| | | } |
| | | if (elbowsMatching.MatchingMinorLoss.HasValue) |
| | | { |
| | | elbows.MinorLoss = elbowsMatching.MatchingMinorLoss.Value; |
| | | } |
| | | |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | result = true; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | //三通 |
| | | if (output.ThreelinkMatchingList != null && output.ThreelinkMatchingList.Count > 0) |
| | | output.ThreelinkMatchingList?.ForEach(x => |
| | | { |
| | | if (hydroInfo.Threelinks != null && hydroInfo.Threelinks.Count > 0) |
| | | if (Apply(hydroInfo, x)) |
| | | { |
| | | foreach (var threelinkMatching in output.ThreelinkMatchingList) |
| | | { |
| | | var threelink = hydroInfo.Threelinks.Find(x => x.Code == threelinkMatching.Code); |
| | | if (threelink != null) |
| | | { |
| | | threelink.DbLocked = threelinkMatching.DbLocked; |
| | | threelink.ModelType = threelinkMatching.ModelType; |
| | | threelink.Caliber = threelinkMatching.Caliber; |
| | | threelink.Material = threelinkMatching.Material; |
| | | threelink.MinorLoss = threelinkMatching.MinorLoss; |
| | | |
| | | if (!threelink.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(threelinkMatching.MatchingModelType)) |
| | | { |
| | | threelink.ModelType = threelinkMatching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(threelinkMatching.MatchingDbId)) |
| | | { |
| | | threelink.DbId = threelinkMatching.MatchingDbId; |
| | | } |
| | | if (threelinkMatching.MatchingCaliber.HasValue) |
| | | { |
| | | threelink.Caliber = threelinkMatching.MatchingCaliber.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(threelinkMatching.MatchingMaterial)) |
| | | { |
| | | threelink.Material = threelinkMatching.MatchingMaterial; |
| | | } |
| | | if (threelinkMatching.MatchingMinorLoss.HasValue) |
| | | { |
| | | threelink.MinorLoss = threelinkMatching.MatchingMinorLoss.Value; |
| | | } |
| | | |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | result = true; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | //四通 |
| | | if (output.FourlinkMatchingList != null && output.FourlinkMatchingList.Count > 0) |
| | | output.FourlinkMatchingList?.ForEach(x => |
| | | { |
| | | if (hydroInfo.Fourlinks != null && hydroInfo.Fourlinks.Count > 0) |
| | | if (Apply(hydroInfo, x)) |
| | | { |
| | | foreach (var fourlinkMatching in output.FourlinkMatchingList) |
| | | { |
| | | var fourlink = hydroInfo.Fourlinks.Find(x => x.Code == fourlinkMatching.Code); |
| | | if (fourlink != null) |
| | | { |
| | | fourlink.DbLocked = fourlinkMatching.DbLocked; |
| | | fourlink.ModelType = fourlinkMatching.ModelType; |
| | | fourlink.Caliber = fourlinkMatching.Caliber; |
| | | fourlink.Material = fourlinkMatching.Material; |
| | | fourlink.MinorLoss = fourlinkMatching.MinorLoss; |
| | | |
| | | if (!fourlink.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(fourlinkMatching.MatchingModelType)) |
| | | { |
| | | fourlink.ModelType = fourlinkMatching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(fourlinkMatching.MatchingDbId)) |
| | | { |
| | | fourlink.DbId = fourlinkMatching.MatchingDbId; |
| | | } |
| | | if (fourlinkMatching.MatchingCaliber.HasValue) |
| | | { |
| | | fourlink.Caliber = fourlinkMatching.MatchingCaliber.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(fourlinkMatching.MatchingMaterial)) |
| | | { |
| | | fourlink.Material = fourlinkMatching.MatchingMaterial; |
| | | } |
| | | if (fourlinkMatching.MatchingMinorLoss.HasValue) |
| | | { |
| | | fourlink.MinorLoss = fourlinkMatching.MatchingMinorLoss.Value; |
| | | } |
| | | |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | result = true; |
| | | } |
| | | } |
| | | }); |
| | | |
| | | return result; |
| | | } |
| | |
| | | /// <summary> |
| | | /// 应用泵自动匹配ViewModel |
| | | /// </summary> |
| | | public static bool ApplyPump(Yw.Model.HydroModelInfo hydroInfo, PumpMatchingViewModel pumpMatching) |
| | | public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, PumpMatchingViewModel matching) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | | return false; |
| | | } |
| | | if (pumpMatching == null) |
| | | if (matching == null) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | bool result = false; |
| | | |
| | | var pump = hydroInfo.Pumps?.Find(x => x.Code == pumpMatching.Code); |
| | | var pump = hydroInfo.Pumps?.Find(x => x.Code == matching.Code); |
| | | if (pump != null) |
| | | { |
| | | pump.DbLocked = pumpMatching.DbLocked; |
| | | pump.ModelType = pumpMatching.ModelType; |
| | | pump.RatedP = pumpMatching.RatedP; |
| | | pump.RatedQ = pumpMatching.RatedQ; |
| | | pump.RatedH = pumpMatching.RatedH; |
| | | pump.RatedN = pumpMatching.RatedN; |
| | | pump.DbLocked = matching.DbLocked; |
| | | pump.ModelType = matching.ModelType; |
| | | pump.RatedP = matching.RatedP; |
| | | pump.RatedQ = matching.RatedQ; |
| | | pump.RatedH = matching.RatedH; |
| | | pump.RatedN = matching.RatedN; |
| | | |
| | | if (!pump.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(pumpMatching.MatchingModelType)) |
| | | if (!string.IsNullOrEmpty(matching.MatchingModelType)) |
| | | { |
| | | pump.ModelType = pumpMatching.MatchingModelType; |
| | | pump.ModelType = matching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(pumpMatching.MatchingDbId)) |
| | | if (!string.IsNullOrEmpty(matching.MatchingDbId)) |
| | | { |
| | | pump.DbId = pumpMatching.MatchingDbId; |
| | | pump.DbId = matching.MatchingDbId; |
| | | } |
| | | if (pumpMatching.MatchingRatedP.HasValue) |
| | | if (matching.MatchingRatedP.HasValue) |
| | | { |
| | | pump.RatedP = pumpMatching.MatchingRatedP.Value; |
| | | pump.RatedP = matching.MatchingRatedP.Value; |
| | | } |
| | | if (pumpMatching.MatchingRatedQ.HasValue) |
| | | if (matching.MatchingRatedQ.HasValue) |
| | | { |
| | | pump.RatedQ = pumpMatching.MatchingRatedQ.Value; |
| | | pump.RatedQ = matching.MatchingRatedQ.Value; |
| | | } |
| | | if (pumpMatching.MatchingRatedH.HasValue) |
| | | if (matching.MatchingRatedH.HasValue) |
| | | { |
| | | pump.RatedH = pumpMatching.MatchingRatedH.Value; |
| | | pump.RatedH = matching.MatchingRatedH.Value; |
| | | } |
| | | if (pumpMatching.MatchingRatedN.HasValue) |
| | | if (matching.MatchingRatedN.HasValue) |
| | | { |
| | | pump.RatedN = pumpMatching.MatchingRatedN.Value; |
| | | pump.RatedN = matching.MatchingRatedN.Value; |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(pumpMatching.MatchingCurveDbId)) |
| | | if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) |
| | | { |
| | | //流量扬程曲线 |
| | | var curveqh = hydroInfo.Curves?.Find(x => x.Code == pump.CurveQH); |
| | |
| | | curveqh.Name = "匹配"; |
| | | curveqh.ModelType = string.Empty; |
| | | curveqh.DbLocked = false; |
| | | curveqh.DbId = pumpMatching.MatchingCurveDbId; |
| | | curveqh.DbId = matching.MatchingCurveDbId; |
| | | curveqh.CurveType = Yw.WinFrmUI.HydroCurve.PumpQH; |
| | | curveqh.CurveData = pumpMatching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | curveqh.CurveData = matching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | if (hydroInfo.Curves == null) |
| | | { |
| | | hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); |
| | |
| | | { |
| | | if (!curveqh.DbLocked) |
| | | { |
| | | curveqh.DbId = pumpMatching.MatchingDbId; |
| | | curveqh.CurveData = pumpMatching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | curveqh.DbId = matching.MatchingDbId; |
| | | curveqh.CurveData = matching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | } |
| | | } |
| | | |
| | |
| | | curveqp.Name = "匹配"; |
| | | curveqp.ModelType = string.Empty; |
| | | curveqp.DbLocked = false; |
| | | curveqp.DbId = pumpMatching.MatchingCurveDbId; |
| | | curveqp.DbId = matching.MatchingCurveDbId; |
| | | curveqp.CurveType = Yw.WinFrmUI.HydroCurve.PumpQP; |
| | | curveqp.CurveData = pumpMatching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | curveqp.CurveData = matching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | if (hydroInfo.Curves == null) |
| | | { |
| | | hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); |
| | |
| | | { |
| | | if (!curveqp.DbLocked) |
| | | { |
| | | curveqp.DbId = pumpMatching.MatchingDbId; |
| | | curveqp.CurveData = pumpMatching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | curveqp.DbId = matching.MatchingDbId; |
| | | curveqp.CurveData = matching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | } |
| | | } |
| | | |
| | |
| | | curveqe.Name = "匹配"; |
| | | curveqe.ModelType = string.Empty; |
| | | curveqe.DbLocked = false; |
| | | curveqe.DbId = pumpMatching.MatchingCurveDbId; |
| | | curveqe.DbId = matching.MatchingCurveDbId; |
| | | curveqe.CurveType = Yw.WinFrmUI.HydroCurve.PumpQE; |
| | | curveqe.CurveData = pumpMatching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | curveqe.CurveData = matching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | if (hydroInfo.Curves == null) |
| | | { |
| | | hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); |
| | |
| | | { |
| | | if (!curveqe.DbLocked) |
| | | { |
| | | curveqe.DbId = pumpMatching.MatchingDbId; |
| | | curveqe.CurveData = pumpMatching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | curveqe.DbId = matching.MatchingDbId; |
| | | curveqe.CurveData = matching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | result = true; |
| | | } |
| | | } |
| | |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 应用阀门自动匹配ViewModel |
| | | /// </summary> |
| | | public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, ValveMatchingViewModel matching) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | | return false; |
| | | } |
| | | if (matching == null) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | bool result = false; |
| | | |
| | | var valve = hydroInfo.Valves?.Find(x => x.Code == matching.Code); |
| | | if (valve != null) |
| | | { |
| | | valve.DbLocked = matching.DbLocked; |
| | | valve.ModelType = matching.ModelType; |
| | | valve.Diameter = matching.Diameter; |
| | | valve.Material = matching.Material; |
| | | valve.MinorLoss = matching.MinorLoss; |
| | | valve.ValveType = matching.ValveType; |
| | | //valve.ValveSetting = matching.ValveSetting; |
| | | |
| | | if (!valve.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(matching.MatchingModelType)) |
| | | { |
| | | valve.ModelType = matching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingDbId)) |
| | | { |
| | | valve.DbId = matching.MatchingDbId; |
| | | } |
| | | if (matching.MatchingDiameter.HasValue) |
| | | { |
| | | valve.Diameter = matching.MatchingDiameter.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingMaterial)) |
| | | { |
| | | valve.Material = matching.MatchingMaterial; |
| | | } |
| | | if (matching.MatchingMinorLoss.HasValue) |
| | | { |
| | | valve.MinorLoss = matching.MatchingMinorLoss.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingValveType)) |
| | | { |
| | | valve.ValveType = matching.MatchingValveType; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) |
| | | { |
| | | valve.ValveSetting = matching.MatchingValveSetting; |
| | | } |
| | | result = true; |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 应用管道自动匹配ViewModel |
| | | /// </summary> |
| | | public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, PipeMatchingViewModel matching) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | | return false; |
| | | } |
| | | if (matching == null) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | bool result = false; |
| | | |
| | | var pipe = hydroInfo.Pipes?.Find(x => x.Code == matching.Code); |
| | | if (pipe != null) |
| | | { |
| | | pipe.DbLocked = matching.DbLocked; |
| | | pipe.ModelType = matching.ModelType; |
| | | pipe.Diameter = matching.Diameter; |
| | | pipe.Material = matching.Material; |
| | | pipe.Roughness = matching.Roughness; |
| | | pipe.MinorLoss = matching.MinorLoss; |
| | | |
| | | if (!pipe.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(matching.MatchingModelType)) |
| | | { |
| | | pipe.ModelType = matching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingDbId)) |
| | | { |
| | | pipe.DbId = matching.MatchingDbId; |
| | | } |
| | | if (matching.MatchingDiameter.HasValue) |
| | | { |
| | | pipe.Diameter = matching.MatchingDiameter.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingMaterial)) |
| | | { |
| | | pipe.Material = matching.MatchingMaterial; |
| | | } |
| | | if (matching.MatchingRoughness.HasValue) |
| | | { |
| | | pipe.Roughness = matching.MatchingRoughness.Value; |
| | | } |
| | | if (matching.MatchingMinorLoss.HasValue) |
| | | { |
| | | pipe.MinorLoss = matching.MatchingMinorLoss.Value; |
| | | } |
| | | |
| | | result = true; |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 应用弯头自动匹配ViewModel |
| | | /// </summary> |
| | | public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, ElbowMatchingViewModel matching) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | | return false; |
| | | } |
| | | if (matching == null) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | bool result = false; |
| | | |
| | | var elbow = hydroInfo.Elbows?.Find(x => x.Code == matching.Code); |
| | | if (elbow != null) |
| | | { |
| | | elbow.DbLocked = matching.DbLocked; |
| | | elbow.ModelType = matching.ModelType; |
| | | elbow.Caliber = matching.Caliber; |
| | | elbow.Material = matching.Material; |
| | | elbow.MinorLoss = matching.MinorLoss; |
| | | |
| | | if (!elbow.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(matching.MatchingModelType)) |
| | | { |
| | | elbow.ModelType = matching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingDbId)) |
| | | { |
| | | elbow.DbId = matching.MatchingDbId; |
| | | } |
| | | if (matching.MatchingCaliber.HasValue) |
| | | { |
| | | elbow.Caliber = matching.MatchingCaliber.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingMaterial)) |
| | | { |
| | | elbow.Material = matching.MatchingMaterial; |
| | | } |
| | | if (matching.MatchingMinorLoss.HasValue) |
| | | { |
| | | elbow.MinorLoss = matching.MatchingMinorLoss.Value; |
| | | } |
| | | |
| | | result = true; |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 应用三通自动匹配ViewModel |
| | | /// </summary> |
| | | public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, ThreelinkMatchingViewModel matching) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | | return false; |
| | | } |
| | | if (matching == null) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | bool result = false; |
| | | |
| | | var threelink = hydroInfo.Threelinks?.Find(x => x.Code == matching.Code); |
| | | if (threelink != null) |
| | | { |
| | | threelink.DbLocked = matching.DbLocked; |
| | | threelink.ModelType = matching.ModelType; |
| | | threelink.Caliber = matching.Caliber; |
| | | threelink.Material = matching.Material; |
| | | threelink.MinorLoss = matching.MinorLoss; |
| | | |
| | | if (!threelink.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(matching.MatchingModelType)) |
| | | { |
| | | threelink.ModelType = matching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingDbId)) |
| | | { |
| | | threelink.DbId = matching.MatchingDbId; |
| | | } |
| | | if (matching.MatchingCaliber.HasValue) |
| | | { |
| | | threelink.Caliber = matching.MatchingCaliber.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingMaterial)) |
| | | { |
| | | threelink.Material = matching.MatchingMaterial; |
| | | } |
| | | if (matching.MatchingMinorLoss.HasValue) |
| | | { |
| | | threelink.MinorLoss = matching.MatchingMinorLoss.Value; |
| | | } |
| | | |
| | | result = true; |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 应用四通自动匹配ViewModel |
| | | /// </summary> |
| | | public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, FourlinkMatchingViewModel matching) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | | return false; |
| | | } |
| | | if (matching == null) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | bool result = false; |
| | | |
| | | var fourlink = hydroInfo.Fourlinks?.Find(x => x.Code == matching.Code); |
| | | if (fourlink != null) |
| | | { |
| | | fourlink.DbLocked = matching.DbLocked; |
| | | fourlink.ModelType = matching.ModelType; |
| | | fourlink.Caliber = matching.Caliber; |
| | | fourlink.Material = matching.Material; |
| | | fourlink.MinorLoss = matching.MinorLoss; |
| | | |
| | | if (!fourlink.DbLocked) |
| | | { |
| | | if (!string.IsNullOrEmpty(matching.MatchingModelType)) |
| | | { |
| | | fourlink.ModelType = matching.MatchingModelType; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingDbId)) |
| | | { |
| | | fourlink.DbId = matching.MatchingDbId; |
| | | } |
| | | if (matching.MatchingCaliber.HasValue) |
| | | { |
| | | fourlink.Caliber = matching.MatchingCaliber.Value; |
| | | } |
| | | if (!string.IsNullOrEmpty(matching.MatchingMaterial)) |
| | | { |
| | | fourlink.Material = matching.MatchingMaterial; |
| | | } |
| | | if (matching.MatchingMinorLoss.HasValue) |
| | | { |
| | | fourlink.MinorLoss = matching.MatchingMinorLoss.Value; |
| | | } |
| | | |
| | | result = true; |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | //获取所有编码列表 |
| | | private static List<string> GetAllCodeList(Yw.Model.HydroModelInfo hydroInfo) |
| | | { |