From c7c7ba392c1767eb58942b82e7243bbdf4af5b0a Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期二, 03 十二月 2024 12:09:11 +0800 Subject: [PATCH] 水力匹配应用 --- WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs | 2227 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 1,625 insertions(+), 602 deletions(-) diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs index 1c5fb5a..017c199 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs @@ -1,4 +1,8 @@ -锘縰sing Yw.Model; +锘縰sing DevExpress.XtraSpreadsheet.Model.CopyOperation; +using System.Windows.Media.Imaging; +using Yw.DAL.Basic; +using Yw.EPAnet; +using Yw.Model; namespace Yw.WinFrmUI { @@ -651,82 +655,1116 @@ #region 搴旂敤 - ///// <summary> - ///// 搴旂敤璧勪骇鑷姩鍖归厤ViewModel - ///// </summary> - //public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, AssetsMatchingViewModel output) - //{ - // if (hydroInfo == null) - // { - // return false; - // } - // if (output == null) - // { - // return false; - // } + /// <summary> + /// 搴旂敤鑷姩鍖归厤ViewModel + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, HydroMatchingViewModel matchingInfo) + { + if (hydroInfo == null) + { + return false; + } + if (matchingInfo == null) + { + return false; + } - // bool result = false; + bool result = false; - // //姘存车 - // output.PumpMatchingList?.ForEach(x => - // { - // if (Apply(hydroInfo, x)) - // { - // result = true; - // } - // }); + #region 姘存睜 - // //闃�闂� - // output.ValveMatchingList?.ForEach(x => - // { - // if (Apply(hydroInfo, x)) - // { - // result = true; - // } - // }); + var allTanks = hydroInfo.GetAllTanks(); + if (allTanks != null && allTanks.Count > 0) + { + if (matchingInfo.Tanks != null && matchingInfo.Tanks.Count > 0) + { + allTanks.ForEach(x => + { + var matching = matchingInfo.Tanks.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } - // //绠¢亾 - // output.PipeMatchingList?.ForEach(x => - // { - // if (Apply(hydroInfo, x)) - // { - // result = true; - // } - // }); + } - // //寮ご - // output.ElbowMatchingList?.ForEach(x => - // { - // if (Apply(hydroInfo, x)) - // { - // result = true; - // } - // }); + #endregion - // //涓夐�� - // output.ThreelinkMatchingList?.ForEach(x => - // { - // if (Apply(hydroInfo, x)) - // { - // result = true; - // } - // }); + #region 闂峰ご - // //鍥涢�� - // output.FourlinkMatchingList?.ForEach(x => - // { - // if (Apply(hydroInfo, x)) - // { - // result = true; - // } - // }); + if (hydroInfo.Bluntheads != null && hydroInfo.Bluntheads.Count > 0) + { + if (matchingInfo.Bluntheads != null && matchingInfo.Bluntheads.Count > 0) + { + hydroInfo.Bluntheads.ForEach(x => + { + var matching = matchingInfo.Bluntheads.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } - // return result; - //} + #endregion + + #region 寮ご + + if (hydroInfo.Elbows != null && hydroInfo.Elbows.Count > 0) + { + if (matchingInfo.Elbows != null && matchingInfo.Elbows.Count > 0) + { + hydroInfo.Elbows.ForEach(x => + { + var matching = matchingInfo.Elbows.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 涓夐�� + + if (hydroInfo.Threelinks != null && hydroInfo.Threelinks.Count > 0) + { + if (matchingInfo.Threelinks != null && matchingInfo.Threelinks.Count > 0) + { + hydroInfo.Threelinks.ForEach(x => + { + var matching = matchingInfo.Threelinks.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 鍥涢�� + + if (hydroInfo.Fourlinks != null && hydroInfo.Fourlinks.Count > 0) + { + if (matchingInfo.Fourlinks != null && matchingInfo.Fourlinks.Count > 0) + { + hydroInfo.Fourlinks.ForEach(x => + { + var matching = matchingInfo.Fourlinks.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 鍠峰ご + + if (hydroInfo.Nozzles != null && hydroInfo.Nozzles.Count > 0) + { + if (matchingInfo.Nozzles != null && matchingInfo.Nozzles.Count > 0) + { + hydroInfo.Nozzles.ForEach(x => + { + var matching = matchingInfo.Nozzles.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 娑堢伀鏍� + + if (hydroInfo.Hydrants != null && hydroInfo.Hydrants.Count > 0) + { + if (matchingInfo.Hydrants != null && matchingInfo.Hydrants.Count > 0) + { + hydroInfo.Hydrants.ForEach(x => + { + var matching = matchingInfo.Hydrants.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 姘磋〃 + + if (hydroInfo.Meters != null && hydroInfo.Meters.Count > 0) + { + if (matchingInfo.Meters != null && matchingInfo.Meters.Count > 0) + { + hydroInfo.Meters.ForEach(x => + { + var matching = matchingInfo.Meters.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 娴侀噺璁� + + if (hydroInfo.Flowmeters != null && hydroInfo.Flowmeters.Count > 0) + { + if (matchingInfo.Flowmeters != null && matchingInfo.Flowmeters.Count > 0) + { + hydroInfo.Flowmeters.ForEach(x => + { + var matching = matchingInfo.Flowmeters.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 鍘嬪姏琛� + + if (hydroInfo.Pressmeters != null && hydroInfo.Pressmeters.Count > 0) + { + if (matchingInfo.Pressmeters != null && matchingInfo.Pressmeters.Count > 0) + { + hydroInfo.Pressmeters.ForEach(x => + { + var matching = matchingInfo.Pressmeters.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 绠¢亾 + + if (hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0) + { + if (matchingInfo.Pipes != null && matchingInfo.Pipes.Count > 0) + { + hydroInfo.Pipes.ForEach(x => + { + var matching = matchingInfo.Pipes.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 杩囨浮浠� + + if (hydroInfo.Translations != null && hydroInfo.Translations.Count > 0) + { + if (matchingInfo.Translations != null && matchingInfo.Translations.Count > 0) + { + hydroInfo.Translations.ForEach(x => + { + var matching = matchingInfo.Translations.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 闃�闂� + + if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0) + { + if (matchingInfo.Valves != null && matchingInfo.Valves.Count > 0) + { + hydroInfo.Valves.ForEach(x => + { + var matching = matchingInfo.Valves.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 鎹㈢儹鍣� + + if (hydroInfo.Exchangers != null && hydroInfo.Exchangers.Count > 0) + { + if (matchingInfo.Exchangers != null && matchingInfo.Exchangers.Count > 0) + { + hydroInfo.Exchangers.ForEach(x => + { + var matching = matchingInfo.Exchangers.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + #region 绌哄帇鏈� + + if (hydroInfo.Compressors != null && hydroInfo.Compressors.Count > 0) + { + if (matchingInfo.Compressors != null && matchingInfo.Compressors.Count > 0) + { + hydroInfo.Compressors.ForEach(x => + { + var matching = matchingInfo.Compressors.Find(t => t.Code == x.Code); + if (Apply(hydroInfo, x, matching)) + { + result = true; + } + }); + } + } + + #endregion + + return result; + } #region 姘存睜 + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroTankInfo visual, HydroTankMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.MinLevel = matching.MinLevel; + visual.MaxLevel = matching.MaxLevel; + visual.DN = matching.DN; + visual.MinVol = matching.MinVol; + visual.OverFlow = matching.OverFlow; + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingMinLevel.HasValue) + { + visual.MinLevel = matching.MatchingMinLevel.Value; + result = true; + } + if (matching.MatchingMaxLevel.HasValue) + { + visual.MaxLevel = matching.MatchingMaxLevel.Value; + result = true; + } + if (matching.MatchingDN.HasValue) + { + visual.DN = matching.MatchingDN.Value; + result = true; + } + if (matching.MatchingMinVol.HasValue) + { + visual.MinVol = matching.MatchingMinVol.Value; + result = true; + } + if (matching.MatchingOverFlow.HasValue) + { + visual.OverFlow = matching.MatchingOverFlow.Value; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) + { + var curvevol = hydroInfo.Curves?.Find(x => x.Code == visual.VolCurve); + if (curvevol == null) + { + curvevol = new Yw.Model.HydroCurveInfo(); + curvevol.Catalog = Yw.Hydro.ParterCatalog.Curve; + curvevol.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); + curvevol.Name = "鍖归厤"; + curvevol.ModelType = string.Empty; + curvevol.DbLocked = false; + curvevol.DbId = matching.MatchingCurveDbId; + curvevol.CurveType = Yw.WinFrmUI.HydroCurve.TankVol; + curvevol.CurveData = matching.MatchingVolCurve?.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(curvevol); + visual.VolCurve = curvevol.Code; + result = true; + } + else + { + if (!curvevol.DbLocked) + { + curvevol.DbId = matching.MatchingCurveDbId; + curvevol.CurveData = matching.MatchingVolCurve?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + result = true; + } + } + } + } + return result; + } + + #endregion + + #region 闂峰ご + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroBluntheadInfo visual, HydroBluntheadMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Caliber = matching.Caliber; + visual.Material = matching.Material; + visual.MinorLoss = matching.MinorLoss; + + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingCaliber.HasValue) + { + visual.Caliber = matching.MatchingCaliber.Value; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + } + return result; + } + + #endregion + + #region 寮ご + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroElbowInfo visual, HydroElbowMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Caliber = matching.Caliber; + visual.Material = matching.Material; + visual.MinorLoss = matching.MinorLoss; + visual.BendingAngle = matching.BendingAngle; + if (matching.ElbowType.HasValue) + { + visual.ElbowType = HydroElbowTypeEnumHelper.GetElbowTypeName(matching.ElbowType.Value); + } + + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingCaliber.HasValue) + { + visual.Caliber = matching.MatchingCaliber.Value; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + if (matching.MatchingBendingAngle.HasValue) + { + visual.BendingAngle = matching.MatchingBendingAngle.Value; + result = true; + } + if (matching.MatchingElbowType.HasValue) + { + visual.ElbowType = HydroElbowTypeEnumHelper.GetElbowTypeName(matching.MatchingElbowType.Value); + result = true; + } + } + return result; + } + + #endregion + + #region 涓夐�� + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroThreelinkInfo visual, HydroThreelinkMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Caliber = matching.Caliber; + visual.Material = matching.Material; + visual.MinorLoss = matching.MinorLoss; + visual.RunningThroughLoss = matching.RunningThroughLoss; + visual.BranchThroughLoss = matching.BranchThroughLoss; + + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingCaliber.HasValue) + { + visual.Caliber = matching.MatchingCaliber.Value; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + if (matching.MatchingRunningThroughLoss.HasValue) + { + visual.RunningThroughLoss = matching.MatchingRunningThroughLoss.Value; + result = true; + } + if (matching.MatchingBranchThroughLoss.HasValue) + { + visual.BranchThroughLoss = matching.MatchingBranchThroughLoss.Value; + result = true; + } + } + return result; + } + + #endregion + + #region 鍥涢�� + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroFourlinkInfo visual, HydroFourlinkMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Caliber = matching.Caliber; + visual.Material = matching.Material; + visual.MinorLoss = matching.MinorLoss; + + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingCaliber.HasValue) + { + visual.Caliber = matching.MatchingCaliber.Value; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + } + return result; + } + + #endregion + + #region 鍠峰ご + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroNozzleInfo visual, HydroNozzleMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Material = matching.Material; + visual.Caliber = matching.Caliber; + visual.MinorLoss = matching.MinorLoss; + visual.Coefficient = matching.Coefficient; + + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingCaliber.HasValue) + { + visual.Caliber = matching.MatchingCaliber.Value; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + if (matching.MatchingCoefficient.HasValue) + { + visual.Coefficient = matching.MatchingCoefficient.Value; + result = true; + } + } + return result; + } + + #endregion + + #region 娑堢伀鏍� + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroHydrantInfo visual, HydroHydrantMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Material = matching.Material; + visual.Caliber = matching.Caliber; + visual.MinorLoss = matching.MinorLoss; + visual.Coefficient = matching.Coefficient; + + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingCaliber.HasValue) + { + visual.Caliber = matching.MatchingCaliber.Value; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + if (matching.MatchingCoefficient.HasValue) + { + visual.Coefficient = matching.MatchingCoefficient.Value; + result = true; + } + } + return result; + } + + #endregion + + #region 姘磋〃 + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroMeterInfo visual, HydroMeterMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.MinorLoss = matching.MinorLoss; + + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + } + return result; + } + + #endregion + + #region 娴侀噺璁� + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroFlowmeterInfo visual, HydroFlowmeterMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.MinorLoss = matching.MinorLoss; + + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + } + return result; + } + + #endregion + + #region 鍘嬪姏琛� + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPressmeterInfo visual, HydroPressmeterMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.MinorLoss = matching.MinorLoss; + + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + } + return result; + } + + #endregion + + #region 绠¢亾 + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPipeInfo visual, HydroPipeMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Material = matching.Material; + visual.Diameter = matching.Diameter; + visual.Roughness = matching.Roughness; + visual.MinorLoss = matching.MinorLoss; + + bool result = false; + + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingDiameter.HasValue) + { + visual.Diameter = matching.MatchingDiameter.Value; + result = true; + } + if (matching.MatchingRoughness.HasValue) + { + visual.Roughness = matching.MatchingRoughness.Value; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + } + return result; + } + + #endregion + + #region 杩囨浮浠� + + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroTranslationInfo visual, HydroTranslationMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Material = matching.Material; + visual.Diameter = matching.Diameter; + visual.StartDiameter = matching.StartDiameter; + visual.EndDiameter = matching.EndDiameter; + visual.Roughness = matching.Roughness; + visual.MinorLoss = matching.MinorLoss; + + bool result = false; + + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingDiameter.HasValue) + { + visual.Diameter = matching.MatchingDiameter.Value; + result = true; + } + if (matching.MatchingStartDiameter.HasValue) + { + visual.StartDiameter = matching.MatchingStartDiameter.Value; + result = true; + } + if (matching.MatchingEndDiameter.HasValue) + { + visual.EndDiameter = matching.MatchingEndDiameter.Value; + result = true; + } + if (matching.MatchingRoughness.HasValue) + { + visual.Roughness = matching.MatchingRoughness.Value; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + } + return result; + } #endregion @@ -735,568 +1773,553 @@ /// <summary> /// 搴旂敤 /// </summary> - //public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, PumpMatchingViewModel matching) - //{ - // if (hydroInfo == null) - // { - // return false; - // } - // if (matching == null) - // { - // return false; - // } + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPumpInfo visual, HydroPumpMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } - // bool result = false; + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.RatedQ = matching.RatedQ; + visual.RatedH = matching.RatedH; + visual.RatedP = matching.RatedP; + visual.RatedN = matching.RatedN; + visual.RatedHz = matching.RatedHz; + visual.SpeedRatio = matching.CurrentHz / visual.RatedHz; - // 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; - // pump.RatedHz = matching.RatedHz; - // pump.SpeedRatio = Math.Round(matching.CurrentHz / matching.RatedHz, 1); + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (matching.MatchingRatedQ.HasValue) + { + visual.RatedQ = matching.MatchingRatedQ.Value; + result = true; + } + if (matching.MatchingRatedH.HasValue) + { + visual.RatedH = matching.MatchingRatedH.Value; + result = true; + } + if (matching.MatchingRatedP.HasValue) + { + visual.RatedP = matching.MatchingRatedP.Value; + result = true; + } + if (matching.MatchingRatedN.HasValue) + { + visual.RatedN = matching.MatchingRatedN.Value; + result = true; + } + if (matching.MatchingRatedHz.HasValue) + { + visual.RatedHz = matching.MatchingRatedHz.Value; + result = true; + } + if (matching.MatchingCurrentHz.HasValue) + { + visual.SpeedRatio = matching.MatchingCurrentHz.Value / visual.RatedHz; + result = true; + } - // if (!pump.DbLocked) - // { - // if (!string.IsNullOrEmpty(matching.MatchingModelType)) - // { - // 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 == visual.CurveQH); + if (curveqh == null) + { + curveqh = new Yw.Model.HydroCurveInfo(); + curveqh.Catalog = Yw.Hydro.ParterCatalog.Curve; + curveqh.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); + 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) + { + hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); + } + hydroInfo.Curves.Add(curveqh); + visual.CurveQH = curveqh.Code; + result = true; + } + else + { + if (!curveqh.DbLocked) + { + curveqh.DbId = matching.MatchingCurveDbId; + curveqh.CurveData = matching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + result = true; + } + } - // if (!string.IsNullOrEmpty(matching.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", hydroInfo.GetAllParterCodes()); - // 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) - // { - // hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); - // } - // hydroInfo.Curves.Add(curveqh); - // pump.CurveQH = curveqh.Code; - // } - // else - // { - // if (!curveqh.DbLocked) - // { - // curveqh.DbId = matching.MatchingCurveDbId; - // curveqh.CurveData = matching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); - // } - // } + //娴侀噺鍔熺巼鏇茬嚎 + var curveqp = hydroInfo.Curves?.Find(x => x.Code == visual.CurveQP); + if (curveqp == null) + { + curveqp = new Yw.Model.HydroCurveInfo(); + curveqp.Catalog = Yw.Hydro.ParterCatalog.Curve; + curveqp.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); + 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); + visual.CurveQP = curveqp.Code; + result = true; + } + else + { + if (!curveqp.DbLocked) + { + curveqp.DbId = matching.MatchingCurveDbId; + curveqp.CurveData = matching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + result = true; + } + } - // //娴侀噺鍔熺巼鏇茬嚎 - // 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", hydroInfo.GetAllParterCodes()); - // 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.MatchingCurveDbId; - // curveqp.CurveData = matching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); - // } - // } + //娴侀噺鏁堢巼鏇茬嚎 + var curveqe = hydroInfo.Curves?.Find(x => x.Code == visual.CurveQE); + if (curveqe == null) + { + curveqe = new Yw.Model.HydroCurveInfo(); + curveqe.Catalog = Yw.Hydro.ParterCatalog.Curve; + curveqe.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); + 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); + visual.CurveQE = curveqe.Code; + result = true; + } + else + { + if (!curveqe.DbLocked) + { + curveqe.DbId = matching.MatchingCurveDbId; + curveqe.CurveData = matching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + result = true; + } + } + } + } - // //娴侀噺鏁堢巼鏇茬嚎 - // 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", hydroInfo.GetAllParterCodes()); - // 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.MatchingCurveDbId; - // curveqe.CurveData = matching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); - // } - // } - - // } - - // result = true; - // } - // } - - // return result; - //} + return result; + } #endregion - ///// <summary> - ///// 搴旂敤闃�闂ㄨ嚜鍔ㄥ尮閰峍iewModel - ///// </summary> - //public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, ValveMatchingViewModel matching) - //{ - // if (hydroInfo == null) - // { - // return false; - // } - // if (matching == null) - // { - // return false; - // } + #region 闃�闂� - // bool result = false; + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroValveInfo visual, HydroValveMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } - // var valve = hydroInfo.Valves?.Find(x => x.Code == matching.Code); - // if (valve != null) - // { - // valve.DbLocked = matching.DbLocked; - // valve.ModelType = matching.ModelType; - // valve.Material = matching.Material; - // valve.Diameter = matching.Diameter; - // valve.MinorLoss = matching.MinorLoss; - // switch (matching.ValveType) - // { - // case HStation.Assets.eValveType.PBV: valve.ValveType = Yw.Hydro.ValveType.PBV; break; - // case HStation.Assets.eValveType.PRV: valve.ValveType = Yw.Hydro.ValveType.PRV; break; - // case HStation.Assets.eValveType.PSV: valve.ValveType = Yw.Hydro.ValveType.PSV; break; - // case HStation.Assets.eValveType.TCV: valve.ValveType = Yw.Hydro.ValveType.TCV; break; - // case HStation.Assets.eValveType.FCV: valve.ValveType = Yw.Hydro.ValveType.FCV; break; - // case HStation.Assets.eValveType.GPV: valve.ValveType = Yw.Hydro.ValveType.GPV; break; - // case HStation.Assets.eValveType.CV: valve.ValveType = Yw.Hydro.ValveType.CV; break; - // default: break; - // } - // valve.ValveSetting = matching.ValveSetting; + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Material = matching.Material; + visual.Diameter = matching.Diameter; + visual.MinorLoss = matching.MinorLoss; + visual.ValveType = HydroValveTypeEnumHelper.GetValveTypeCode(matching.ValveType); + visual.ValveSetting = matching.ValveSetting; - // if (!valve.DbLocked) - // { - // if (!string.IsNullOrEmpty(matching.MatchingDbId)) - // { - // valve.DbId = matching.MatchingDbId; - // } - // if (!string.IsNullOrEmpty(matching.MatchingModelType)) - // { - // valve.ModelType = matching.MatchingModelType; - // } - // if (!string.IsNullOrEmpty(matching.MatchingMaterial)) - // { - // valve.Material = matching.MatchingMaterial; - // } - // if (matching.MatchingDiameter.HasValue) - // { - // valve.Diameter = matching.MatchingDiameter.Value; - // } - // if (matching.MatchingMinorLoss.HasValue) - // { - // valve.MinorLoss = matching.MatchingMinorLoss.Value; - // } - // if (matching.MatchingValveType.HasValue) - // { - // switch (matching.MatchingValveType.Value) - // { - // case HStation.Assets.eValveType.PBV: valve.ValveType = Yw.Hydro.ValveType.PBV; break; - // case HStation.Assets.eValveType.PRV: valve.ValveType = Yw.Hydro.ValveType.PRV; break; - // case HStation.Assets.eValveType.PSV: valve.ValveType = Yw.Hydro.ValveType.PSV; break; - // case HStation.Assets.eValveType.TCV: valve.ValveType = Yw.Hydro.ValveType.TCV; break; - // case HStation.Assets.eValveType.FCV: valve.ValveType = Yw.Hydro.ValveType.FCV; break; - // case HStation.Assets.eValveType.GPV: valve.ValveType = Yw.Hydro.ValveType.GPV; break; - // case HStation.Assets.eValveType.CV: valve.ValveType = Yw.Hydro.ValveType.CV; break; - // default: break; - // } - // } - // switch (valve.ValveType) - // { - // case Yw.Hydro.ValveType.PSV: - // { - // if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) - // { - // valve.ValveSetting = matching.MatchingValveSetting; - // } - // } - // break; - // case Yw.Hydro.ValveType.PBV: - // { - // if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) - // { - // valve.ValveSetting = matching.MatchingValveSetting; - // } - // } - // break; - // case Yw.Hydro.ValveType.PRV: - // { - // if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) - // { - // valve.ValveSetting = matching.MatchingValveSetting; - // } - // } - // break; - // case Yw.Hydro.ValveType.FCV: - // { - // if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) - // { - // valve.ValveSetting = matching.MatchingValveSetting; - // } - // } - // break; - // case Yw.Hydro.ValveType.TCV: - // { - // if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) - // { - // //闃�闂ㄥ紑搴︽崯澶辩郴鏁版洸绾� - // var curveol = hydroInfo.Curves?.Find(x => x.Code == valve.ValveSetting); - // if (curveol == null) - // { - // curveol = new Yw.Model.HydroCurveInfo(); - // curveol.Catalog = Yw.Hydro.ParterCatalog.Curve; - // curveol.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); - // curveol.Name = "鍖归厤"; - // curveol.ModelType = valve.ModelType; - // curveol.DbLocked = false; - // curveol.DbId = matching.MatchingCurveDbId; - // curveol.CurveType = Yw.WinFrmUI.HydroCurve.ValveOL; - // curveol.CurveData = matching.MatchingCurveOL?.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(curveol); - // valve.ValveSetting = curveol.Code; - // } - // else - // { - // if (!curveol.DbLocked) - // { - // curveol.DbId = matching.MatchingCurveDbId; - // curveol.CurveData = matching.MatchingCurveOL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); - // } - // } - // } - // } - // break; - // case Yw.Hydro.ValveType.GPV: - // { - // if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) - // { - // //闃�闂ㄥ紑搴︽崯澶辩郴鏁版洸绾� - // var curveql = hydroInfo.Curves?.Find(x => x.Code == valve.ValveSetting); - // if (curveql == null) - // { - // curveql = new Yw.Model.HydroCurveInfo(); - // curveql.Catalog = Yw.Hydro.ParterCatalog.Curve; - // curveql.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); - // curveql.Name = "鍖归厤"; - // curveql.ModelType = valve.ModelType; - // curveql.DbLocked = false; - // curveql.DbId = matching.MatchingCurveDbId; - // curveql.CurveType = Yw.WinFrmUI.HydroCurve.ValveOL; - // curveql.CurveData = matching.MatchingCurveQL?.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(curveql); - // valve.ValveSetting = curveql.Code; - // } - // else - // { - // if (!curveql.DbLocked) - // { - // curveql.DbId = matching.MatchingCurveDbId; - // curveql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); - // } - // } - // } - // } - // break; - // case Yw.Hydro.ValveType.CV: - // { + bool result = false; - // } - // break; - // } + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingDiameter.HasValue) + { + visual.Diameter = matching.MatchingDiameter.Value; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } + if (matching.MatchingValveType.HasValue) + { + visual.ValveType = HydroValveTypeEnumHelper.GetValveTypeCode(matching.MatchingValveType.Value); + result = true; + } + switch (visual.ValveType) + { + case Yw.Hydro.ValveType.PSV: + { + if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) + { + visual.ValveSetting = matching.MatchingValveSetting; + result = true; + } + } + break; + case Yw.Hydro.ValveType.PBV: + { + if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) + { + visual.ValveSetting = matching.MatchingValveSetting; + result = true; + } + } + break; + case Yw.Hydro.ValveType.PRV: + { + if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) + { + visual.ValveSetting = matching.MatchingValveSetting; + result = true; + } + } + break; + case Yw.Hydro.ValveType.FCV: + { + if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) + { + visual.ValveSetting = matching.MatchingValveSetting; + result = true; + } + } + break; + case Yw.Hydro.ValveType.TCV: + { + if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) + { + //闃�闂ㄥ紑搴︽崯澶辩郴鏁版洸绾� + var curveol = hydroInfo.Curves?.Find(x => x.Code == visual.ValveSetting); + if (curveol == null) + { + curveol = new Yw.Model.HydroCurveInfo(); + curveol.Catalog = Yw.Hydro.ParterCatalog.Curve; + curveol.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); + curveol.Name = "鍖归厤"; + curveol.ModelType = visual.ModelType; + curveol.DbLocked = false; + curveol.DbId = matching.MatchingCurveDbId; + curveol.CurveType = Yw.WinFrmUI.HydroCurve.ValveOL; + curveol.CurveData = matching.MatchingCurveOL?.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(curveol); + visual.ValveSetting = curveol.Code; + result = true; + } + else + { + if (!curveol.DbLocked) + { + curveol.DbId = matching.MatchingCurveDbId; + curveol.CurveData = matching.MatchingCurveOL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + result = true; + } + } + } + } + break; + case Yw.Hydro.ValveType.GPV: + { + if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) + { + //闃�闂ㄥ紑搴︽崯澶辩郴鏁版洸绾� + var curveql = hydroInfo.Curves?.Find(x => x.Code == visual.ValveSetting); + if (curveql == null) + { + curveql = new Yw.Model.HydroCurveInfo(); + curveql.Catalog = Yw.Hydro.ParterCatalog.Curve; + curveql.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); + curveql.Name = "鍖归厤"; + curveql.ModelType = visual.ModelType; + curveql.DbLocked = false; + curveql.DbId = matching.MatchingCurveDbId; + curveql.CurveType = Yw.WinFrmUI.HydroCurve.ValveOL; + curveql.CurveData = matching.MatchingCurveQL?.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(curveql); + visual.ValveSetting = curveql.Code; + result = true; + } + else + { + if (!curveql.DbLocked) + { + curveql.DbId = matching.MatchingCurveDbId; + curveql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + result = true; + } + } + } + } + break; + case Yw.Hydro.ValveType.CV: + { - // result = true; - // } - // } - // return result; - //} + } + break; + } + } + 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; - // } + #endregion - // bool result = false; + #region 鎹㈢儹鍣� - // 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; + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroExchangerInfo visual, HydroExchangerMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Material = matching.Material; + visual.Diameter = matching.Diameter; + visual.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; - // } + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingDiameter.HasValue) + { + visual.Diameter = matching.MatchingDiameter.Value; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } - // result = true; - // } - // } - // return result; - //} + if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) + { + var curvevql = hydroInfo.Curves?.Find(x => x.Code == visual.CurveQL); + if (curvevql == null) + { + curvevql = new Yw.Model.HydroCurveInfo(); + curvevql.Catalog = Yw.Hydro.ParterCatalog.Curve; + curvevql.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); + curvevql.Name = "鍖归厤"; + curvevql.ModelType = string.Empty; + curvevql.DbLocked = false; + curvevql.DbId = matching.MatchingCurveDbId; + curvevql.CurveType = Yw.WinFrmUI.HydroCurve.ExchangerQL; + curvevql.CurveData = matching.MatchingCurveQL?.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(curvevql); + visual.CurveQL = curvevql.Code; + result = true; + } + else + { + if (!curvevql.DbLocked) + { + curvevql.DbId = matching.MatchingCurveDbId; + curvevql.CurveData = matching.MatchingCurveQL?.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, ElbowMatchingViewModel matching) - //{ - // if (hydroInfo == null) - // { - // return false; - // } - // if (matching == null) - // { - // return false; - // } + #endregion - // bool result = false; + #region 绌哄帇鏈� - // 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; + /// <summary> + /// 搴旂敤 + /// </summary> + public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroCompressorInfo visual, HydroCompressorMatchingViewModel matching) + { + if (hydroInfo == null) + { + return false; + } + if (visual == null) + { + return false; + } + if (matching == null) + { + return false; + } + visual.Name = matching.Name; + visual.DbLocked = matching.DbLocked; + visual.DbId = matching.DbId; + visual.ModelType = matching.ModelType; + visual.Material = matching.Material; + visual.Diameter = matching.Diameter; + visual.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; - // } + bool result = false; + if (!visual.DbLocked) + { + if (!string.IsNullOrEmpty(matching.MatchingModelType)) + { + visual.ModelType = matching.MatchingModelType; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingDbId)) + { + visual.DbId = matching.MatchingDbId; + result = true; + } + if (!string.IsNullOrEmpty(matching.MatchingMaterial)) + { + visual.Material = matching.MatchingMaterial; + result = true; + } + if (matching.MatchingDiameter.HasValue) + { + visual.Diameter = matching.MatchingDiameter.Value; + result = true; + } + if (matching.MatchingMinorLoss.HasValue) + { + visual.MinorLoss = matching.MatchingMinorLoss.Value; + result = true; + } - // result = true; - // } - // } - // return result; - //} + if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) + { + var curvevql = hydroInfo.Curves?.Find(x => x.Code == visual.CurveQL); + if (curvevql == null) + { + curvevql = new Yw.Model.HydroCurveInfo(); + curvevql.Catalog = Yw.Hydro.ParterCatalog.Curve; + curvevql.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes()); + curvevql.Name = "鍖归厤"; + curvevql.ModelType = string.Empty; + curvevql.DbLocked = false; + curvevql.DbId = matching.MatchingCurveDbId; + curvevql.CurveType = Yw.WinFrmUI.HydroCurve.CompressorQL; + curvevql.CurveData = matching.MatchingCurveQL?.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(curvevql); + visual.CurveQL = curvevql.Code; + result = true; + } + else + { + if (!curvevql.DbLocked) + { + curvevql.DbId = matching.MatchingCurveDbId; + curvevql.CurveData = matching.MatchingCurveQL?.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, 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 #endregion -- Gitblit v1.9.3