From a8ccc992964272f6a74631e8c164e8c91e5cb6d4 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期六, 12 十月 2024 16:47:29 +0800 Subject: [PATCH] 处理冲突 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs | 1076 +++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 644 insertions(+), 432 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs index 030b638..849604b 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs @@ -1,11 +1,4 @@ -锘縰sing StackExchange.Profiling.Internal; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace HStation.WinFrmUI +锘縩amespace HStation.WinFrmUI { /// <summary> /// 璧勪骇鍖归厤鍙傛暟杈呭姪绫� @@ -13,102 +6,214 @@ public class AssetsMatchingParasHelper { - //鍒涘缓璧勪骇鑷姩鍖归厤ViewModel + #region 鍒涘缓 + + /// <summary> + /// 鍒涘缓璧勪骇鑷姩鍖归厤ViewModel + /// </summary> public static AssetsMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo) { + if (hydroInfo == null) + { + return default; + } var input = new AssetsMatchingViewModel(); //姘存车 - input.PumpMatchingList = hydroInfo.Pumps?.Select(x => new PumpMatchingViewModel() - { - ID = x.ID, - Code = x.Code, - Name = x.Name, - DbLocked = x.DbLocked, - ModelType = x.ModelType, - DbId = x.DbId, - CurveDbId = hydroInfo.Curves?.Find(t => t.Code == x.CurveQH)?.DbId, - RatedP = x.RatedP, - RatedH = x.RatedH, - RatedN = x.RatedN, - RatedQ = x.RatedQ, - }).ToList(); + input.PumpMatchingList = hydroInfo.Pumps?.Select(x => Create(hydroInfo, x)).ToList(); //闃�闂� - input.ValveMatchingList = hydroInfo.Valves?.Select(x => new ValveMatchingViewModel() - { - ID = x.ID, - Code = x.Code, - Name = x.Name, - DbLocked = x.DbLocked, - ModelType = x.ModelType, - DbId = x.DbId, - Diameter = x.Diameter, - Material = x.Material, - MinorLoss = x.MinorLoss, - ValveType = x.ValveType - }).ToList(); + input.ValveMatchingList = hydroInfo.Valves?.Select(x => Create(hydroInfo, x)).ToList(); //绠¢亾 - input.PipeMatchingList = hydroInfo.Pipes?.Select(x => new PipeMatchingViewModel() - { - ID = x.ID, - Code = x.Code, - Name = x.Name, - DbLocked = x.DbLocked, - ModelType = x.ModelType, - DbId = x.DbId, - Diameter = x.Diameter, - Material = x.Material, - Roughness = x.Roughness, - MinorLoss = x.MinorLoss, - eAlgorithmType = HStation.Assets.eAlgorithmType.Hazen - }).ToList(); + input.PipeMatchingList = hydroInfo.Pipes?.Select(x => Create(hydroInfo, x)).ToList(); //寮ご - input.ElbowsMatchingList = hydroInfo.Elbows?.Select(x => new ElbowsMatchingViewModel() - { - ID = x.ID, - Code = x.Code, - Name = x.Name, - DbLocked = x.DbLocked, - ModelType = x.ModelType, - DbId = x.DbId, - Caliber = x.Caliber, - Material = x.Material, - MinorLoss = x.MinorLoss - }).ToList(); + input.ElbowMatchingList = hydroInfo.Elbows?.Select(x => Create(hydroInfo, x)).ToList(); //涓夐�� - input.ThreelinkMatchingList = hydroInfo.Threelinks?.Select(x => new ThreelinkMatchingViewModel() - { - ID = x.ID, - Name = x.Name, - Code = x.Code, - DbId = x.DbId, - DbLocked = x.DbLocked, - ModelType = x.ModelType, - Caliber = x.Caliber, - Material = x.Material - }).ToList(); + input.ThreelinkMatchingList = hydroInfo.Threelinks?.Select(x => Create(hydroInfo, x)).ToList(); //鍥涢�� - input.FourlinkMatchingList = hydroInfo.Fourlinks?.Select(x => new FourlinkMatchingViewModel() - { - ID = x.ID, - Name = x.Name, - Code = x.Code, - DbId = x.DbId, - DbLocked = x.DbLocked, - ModelType = x.ModelType, - Caliber = x.Caliber, - Material = x.Material - }).ToList(); + input.FourlinkMatchingList = hydroInfo.Fourlinks?.Select(x => Create(hydroInfo, x)).ToList(); return input; } - //搴旂敤璧勪骇鑷姩鍖归厤ViewModel + /// <summary> + /// 鍒涘缓娉佃嚜鍔ㄥ尮閰峍iewModel + /// </summary> + public static PumpMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPumpInfo pumpInfo) + { + if (hydroInfo == null) + { + return default; + } + if (pumpInfo == null) + { + return default; + } + return new PumpMatchingViewModel() + { + ID = pumpInfo.ID, + Code = pumpInfo.Code, + Name = pumpInfo.Name, + DbLocked = pumpInfo.DbLocked, + ModelType = pumpInfo.ModelType, + DbId = pumpInfo.DbId, + CurveDbId = hydroInfo.Curves?.Find(t => t.Code == pumpInfo.CurveQH)?.DbId, + RatedP = pumpInfo.RatedP, + RatedH = pumpInfo.RatedH, + RatedN = pumpInfo.RatedN, + RatedQ = pumpInfo.RatedQ, + }; + } + + /// <summary> + /// 鍒涘缓闃�闂ㄨ嚜鍔ㄥ尮閰峍iewModel + /// </summary> + public static ValveMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroValveInfo valveInfo) + { + if (hydroInfo == null) + { + return default; + } + if (valveInfo == null) + { + return default; + } + return new ValveMatchingViewModel() + { + ID = valveInfo.ID, + Code = valveInfo.Code, + Name = valveInfo.Name, + DbLocked = valveInfo.DbLocked, + ModelType = valveInfo.ModelType, + DbId = valveInfo.DbId, + Diameter = valveInfo.Diameter, + Material = valveInfo.Material, + MinorLoss = valveInfo.MinorLoss, + ValveType = valveInfo.ValveType + }; + } + + /// <summary> + /// 鍒涘缓绠¢亾鑷姩鍖归厤ViewModel + /// </summary> + public static PipeMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPipeInfo pipeInfo) + { + if (hydroInfo == null) + { + return default; + } + if (pipeInfo == null) + { + return default; + } + return new PipeMatchingViewModel() + { + ID = pipeInfo.ID, + Code = pipeInfo.Code, + Name = pipeInfo.Name, + DbLocked = pipeInfo.DbLocked, + ModelType = pipeInfo.ModelType, + DbId = pipeInfo.DbId, + Diameter = pipeInfo.Diameter, + Material = pipeInfo.Material, + Roughness = pipeInfo.Roughness, + MinorLoss = pipeInfo.MinorLoss, + eAlgorithmType = HStation.Assets.eAlgorithmType.Hazen + }; + } + + /// <summary> + /// 鍒涘缓寮ご鑷姩鍖归厤ViewModel + /// </summary> + public static ElbowMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroElbowInfo elbowInfo) + { + if (hydroInfo == null) + { + return default; + } + if (elbowInfo == null) + { + return default; + } + return new ElbowMatchingViewModel() + { + ID = elbowInfo.ID, + Code = elbowInfo.Code, + Name = elbowInfo.Name, + DbLocked = elbowInfo.DbLocked, + ModelType = elbowInfo.ModelType, + DbId = elbowInfo.DbId, + Caliber = elbowInfo.Caliber, + Material = elbowInfo.Material, + MinorLoss = elbowInfo.MinorLoss + }; + } + + /// <summary> + /// 鍒涘缓涓夐�氳嚜鍔ㄥ尮閰峍iewModel + /// </summary> + public static ThreelinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroThreelinkInfo threelinkInfo) + { + if (hydroInfo == null) + { + return default; + } + if (threelinkInfo == null) + { + return default; + } + return new ThreelinkMatchingViewModel() + { + ID = threelinkInfo.ID, + Code = threelinkInfo.Code, + Name = threelinkInfo.Name, + DbLocked = threelinkInfo.DbLocked, + ModelType = threelinkInfo.ModelType, + DbId = threelinkInfo.DbId, + Caliber = threelinkInfo.Caliber, + Material = threelinkInfo.Material, + MinorLoss = threelinkInfo.MinorLoss + }; + } + + /// <summary> + /// 鍒涘缓鍥涢�氳嚜鍔ㄥ尮閰峍iewModel + /// </summary> + public static FourlinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroFourlinkInfo fourlinkInfo) + { + if (hydroInfo == null) + { + return default; + } + if (fourlinkInfo == null) + { + return default; + } + return new FourlinkMatchingViewModel() + { + ID = fourlinkInfo.ID, + Code = fourlinkInfo.Code, + Name = fourlinkInfo.Name, + DbLocked = fourlinkInfo.DbLocked, + ModelType = fourlinkInfo.ModelType, + DbId = fourlinkInfo.DbId, + Caliber = fourlinkInfo.Caliber, + Material = fourlinkInfo.Material, + MinorLoss = fourlinkInfo.MinorLoss + }; + } + + #endregion + + #region 搴旂敤 + + /// <summary> + /// 搴旂敤璧勪骇鑷姩鍖归厤ViewModel + /// </summary> public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, AssetsMatchingViewModel output) { if (hydroInfo == null) @@ -123,392 +228,499 @@ 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; } - } + }); //闃�闂� - 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) + result = true; + } + }); + + return result; + } + + /// <summary> + /// 搴旂敤娉佃嚜鍔ㄥ尮閰峍iewModel + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, PumpMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (matching == null) + { + return false; + } + + bool result = false; + + var pump = hydroInfo.Pumps?.Find(x => x.Code == matching.Code); + if (pump != null) + { + 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(matching.MatchingModelType)) { - var fourlink = hydroInfo.Fourlinks.Find(x => x.Code == fourlinkMatching.Code); - if (fourlink != null) + pump.ModelType = matching.MatchingModelType; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + pump.DbId = matching.MatchingDbId; + } + if (matching.MatchingRatedP.HasValue) + { + pump.RatedP = matching.MatchingRatedP.Value; + } + if (matching.MatchingRatedQ.HasValue) + { + pump.RatedQ = matching.MatchingRatedQ.Value; + } + if (matching.MatchingRatedH.HasValue) + { + pump.RatedH = matching.MatchingRatedH.Value; + } + if (matching.MatchingRatedN.HasValue) + { + pump.RatedN = matching.MatchingRatedN.Value; + } + + if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) + { + //娴侀噺鎵▼鏇茬嚎 + var curveqh = hydroInfo.Curves?.Find(x => x.Code == pump.CurveQH); + if (curveqh == null) { - fourlink.DbLocked = fourlinkMatching.DbLocked; - fourlink.ModelType = fourlinkMatching.ModelType; - fourlink.Caliber = fourlinkMatching.Caliber; - fourlink.Material = fourlinkMatching.Material; - fourlink.MinorLoss = fourlinkMatching.MinorLoss; - - if (!fourlink.DbLocked) + 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 = matching.MatchingCurveDbId; + curveqh.CurveType = Yw.WinFrmUI.HydroCurve.PumpQH; + curveqh.CurveData = matching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + if (hydroInfo.Curves == null) { - 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; + hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); + } + hydroInfo.Curves.Add(curveqh); + pump.CurveQH = curveqh.Code; + } + else + { + if (!curveqh.DbLocked) + { + curveqh.DbId = matching.MatchingDbId; + curveqh.CurveData = matching.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 = matching.MatchingCurveDbId; + curveqp.CurveType = Yw.WinFrmUI.HydroCurve.PumpQP; + 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>(); + } + hydroInfo.Curves.Add(curveqp); + pump.CurveQP = curveqp.Code; + } + else + { + if (!curveqp.DbLocked) + { + curveqp.DbId = matching.MatchingDbId; + curveqp.CurveData = matching.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 = matching.MatchingCurveDbId; + curveqe.CurveType = Yw.WinFrmUI.HydroCurve.PumpQE; + 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>(); + } + hydroInfo.Curves.Add(curveqe); + pump.CurveQE = curveqe.Code; + } + else + { + if (!curveqe.DbLocked) + { + 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> + /// 搴旂敤闃�闂ㄨ嚜鍔ㄥ尮閰峍iewModel + /// </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> + /// 搴旂敤涓夐�氳嚜鍔ㄥ尮閰峍iewModel + /// </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> + /// 搴旂敤鍥涢�氳嚜鍔ㄥ尮閰峍iewModel + /// </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) { -- Gitblit v1.9.3