using Yw.Hydro; using Yw.Model; namespace Yw.WinFrmUI { /// /// 资产匹配辅助类 /// public class HydroMatchingHelper { #region 创建 /// /// 创建 /// public static HydroMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo) { if (hydroInfo == null) { return default; } var vm = new HydroMatchingViewModel(); #region 水池 var tanks = hydroInfo.GetAllTanks(); vm.Tanks = tanks?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 闷头 vm.Bluntheads = hydroInfo.Bluntheads?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 弯头 vm.Elbows = hydroInfo.Elbows?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 三通 vm.Threelinks = hydroInfo.Threelinks?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 四通 vm.Fourlinks = hydroInfo.Fourlinks?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 喷嘴 vm.Nozzles = hydroInfo.Nozzles?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 消火栓 vm.Hydrants = hydroInfo.Hydrants?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 冷却塔 vm.Coolings = hydroInfo.Coolings?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 水表 vm.Meters = hydroInfo.Meters?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 流量计 vm.Flowmeters = hydroInfo.Flowmeters?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 压力表 vm.Pressmeters = hydroInfo.Pressmeters?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 管道 vm.Pipes = hydroInfo.Pipes?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 过渡件 vm.Translations = hydroInfo.Translations?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 水泵 vm.Pumps = hydroInfo.Pumps?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 阀门 vm.Valves = hydroInfo.Valves?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 换热器 vm.Exchangers = hydroInfo.Exchangers?.Select(x => Create(x, hydroInfo)).ToList(); #endregion #region 压缩机 vm.Compressors = hydroInfo.Compressors?.Select(x => Create(x, hydroInfo)).ToList(); #endregion return vm; } #region 水池 /// /// 创建水池自动匹配ViewModel /// public static HydroTankMatchingViewModel Create(HydroTankInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroTankMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建水池自动匹配ViewModel /// public static HydroTankMatchingViewModel Create(HydroTankViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroTankMatchingViewModel(visualViewModel); } #endregion #region 闷头 /// /// 创建闷头自动匹配ViewModel /// public static HydroBluntheadMatchingViewModel Create(HydroBluntheadInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroBluntheadMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建闷头自动匹配ViewModel /// public static HydroBluntheadMatchingViewModel Create(HydroBluntheadViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroBluntheadMatchingViewModel(visualViewModel); } #endregion #region 弯头 /// /// 创建弯头自动匹配ViewModel /// public static HydroElbowMatchingViewModel Create(HydroElbowInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroElbowMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建弯头自动匹配ViewModel /// public static HydroElbowMatchingViewModel Create(HydroElbowViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroElbowMatchingViewModel(visualViewModel); } #endregion #region 三通 /// /// 创建三通自动匹配ViewModel /// public static HydroThreelinkMatchingViewModel Create(HydroThreelinkInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroThreelinkMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建三通自动匹配ViewModel /// public static HydroThreelinkMatchingViewModel Create(HydroThreelinkViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroThreelinkMatchingViewModel(visualViewModel); } #endregion #region 四通 /// /// 创建四通自动匹配ViewModel /// public static HydroFourlinkMatchingViewModel Create(HydroFourlinkInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroFourlinkMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建四通自动匹配ViewModel /// public static HydroFourlinkMatchingViewModel Create(HydroFourlinkViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroFourlinkMatchingViewModel(visualViewModel); } #endregion #region 喷头 /// /// 创建喷头自动匹配ViewModel /// public static HydroNozzleMatchingViewModel Create(HydroNozzleInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroNozzleMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建喷头自动匹配ViewModel /// public static HydroNozzleMatchingViewModel Create(HydroNozzleViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroNozzleMatchingViewModel(visualViewModel); } #endregion #region 消火栓 /// /// 创建消火栓自动匹配ViewModel /// public static HydroHydrantMatchingViewModel Create(HydroHydrantInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroHydrantMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建消火栓自动匹配ViewModel /// public static HydroHydrantMatchingViewModel Create(HydroHydrantViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroHydrantMatchingViewModel(visualViewModel); } #endregion #region 冷却塔 /// /// 创建冷却塔自动匹配ViewModel /// public static HydroCoolingMatchingViewModel Create(HydroCoolingInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroCoolingMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建冷却塔自动匹配ViewModel /// public static HydroCoolingMatchingViewModel Create(HydroCoolingViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroCoolingMatchingViewModel(visualViewModel); } #endregion #region 水表 /// /// 创建水表自动匹配ViewModel /// public static HydroMeterMatchingViewModel Create(HydroMeterInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroMeterMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建水表自动匹配ViewModel /// public static HydroMeterMatchingViewModel Create(HydroMeterViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroMeterMatchingViewModel(visualViewModel); } #endregion #region 流量计 /// /// 创建流量计自动匹配ViewModel /// public static HydroFlowmeterMatchingViewModel Create(HydroFlowmeterInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroFlowmeterMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建流量计自动匹配ViewModel /// public static HydroFlowmeterMatchingViewModel Create(HydroFlowmeterViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroFlowmeterMatchingViewModel(visualViewModel); } #endregion #region 压力表 /// /// 创建压力表自动匹配ViewModel /// public static HydroPressmeterMatchingViewModel Create(HydroPressmeterInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroPressmeterMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建压力表自动匹配ViewModel /// public static HydroPressmeterMatchingViewModel Create(HydroPressmeterViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroPressmeterMatchingViewModel(visualViewModel); } #endregion #region 管道 /// /// 创建管道自动匹配ViewModel /// public static HydroPipeMatchingViewModel Create(HydroPipeInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroPipeMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建管道自动匹配ViewModel /// public static HydroPipeMatchingViewModel Create(HydroPipeViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroPipeMatchingViewModel(visualViewModel); } #endregion #region 过渡件 /// /// 创建过渡件自动匹配ViewModel /// public static HydroTranslationMatchingViewModel Create(HydroTranslationInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroTranslationMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建过渡件自动匹配ViewModel /// public static HydroTranslationMatchingViewModel Create(HydroTranslationViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroTranslationMatchingViewModel(visualViewModel); } #endregion #region 水泵 /// /// 创建水泵自动匹配ViewModel /// public static HydroPumpMatchingViewModel Create(HydroPumpInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroPumpMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建水泵自动匹配ViewModel /// public static HydroPumpMatchingViewModel Create(HydroPumpViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroPumpMatchingViewModel(visualViewModel); } #endregion #region 阀门 /// /// 创建阀门自动匹配ViewModel /// public static HydroValveMatchingViewModel Create(HydroValveInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroValveMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建阀门自动匹配ViewModel /// public static HydroValveMatchingViewModel Create(HydroValveViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroValveMatchingViewModel(visualViewModel); } #endregion #region 换热器 /// /// 创建换热器自动匹配ViewModel /// public static HydroExchangerMatchingViewModel Create(HydroExchangerInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroExchangerMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建换热器自动匹配ViewModel /// public static HydroExchangerMatchingViewModel Create(HydroExchangerViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroExchangerMatchingViewModel(visualViewModel); } #endregion #region 压缩机 /// /// 创建压缩机自动匹配ViewModel /// public static HydroCompressorMatchingViewModel Create(HydroCompressorInfo visualInfo, HydroModelInfo hydroInfo) { if (visualInfo == null) { return default; } if (hydroInfo == null) { return default; } return new HydroCompressorMatchingViewModel(visualInfo, hydroInfo); } /// /// 创建压缩机自动匹配ViewModel /// public static HydroCompressorMatchingViewModel Create(HydroCompressorViewModel visualViewModel) { if (visualViewModel == null) { return default; } return new HydroCompressorMatchingViewModel(visualViewModel); } #endregion #endregion #region 应用 /// /// 应用自动匹配ViewModel /// public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, HydroMatchingViewModel matchingInfo) { if (hydroInfo == null) { return false; } if (matchingInfo == null) { return false; } bool result = false; #region 水池 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; } }); } } #endregion #region 闷头 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; } }); } } #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.Coolings != null && hydroInfo.Coolings.Count > 0) { if (matchingInfo.Coolings != null && matchingInfo.Coolings.Count > 0) { hydroInfo.Coolings.ForEach(x => { var matching = matchingInfo.Coolings.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.Pumps != null && hydroInfo.Pumps.Count > 0) { if (matchingInfo.Pumps != null && matchingInfo.Pumps.Count > 0) { hydroInfo.Pumps.ForEach(x => { var matching = matchingInfo.Pumps.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 水池 /// /// 应用 /// public static bool Apply ( HydroTankViewModel visualViewModel, HydroTankMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroTankInfo visual, HydroTankMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingMinLevel.HasValue) { if (visual.MinLevel != matching.MatchingMinLevel.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinLevel), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinLevel = matching.MatchingMinLevel.Value; result = true; } if (matching.MatchingMaxLevel.HasValue) { if (visual.MaxLevel != matching.MatchingMaxLevel.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MaxLevel), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MaxLevel = matching.MatchingMaxLevel.Value; result = true; } if (matching.MatchingDN.HasValue) { if (visual.DN != matching.MatchingDN.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DN), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DN = matching.MatchingDN.Value; result = true; } if (matching.MatchingMinVol.HasValue) { if (visual.MinVol != matching.MatchingMinVol.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinVol), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinVol = matching.MatchingMinVol.Value; result = true; } if (matching.MatchingOverFlow.HasValue) { if (visual.OverFlow != matching.MatchingOverFlow.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.OverFlow), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } 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.HydroCurveType.CurveVol; curvevol.CurveData = matching.MatchingVolCurve?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); if (hydroInfo.Curves == null) { hydroInfo.Curves = new List(); } hydroInfo.Curves.Add(curvevol); visual.VolCurve = curvevol.Code; changeHelper?.Append(curvevol, eChangeType.Add); 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(); changeHelper?.Append(curvevol, eChangeType.Update); result = true; } } propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.VolCurve), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修复"); } else { if (!string.IsNullOrEmpty(visual.VolCurve)) { var volCurve = hydroInfo?.Curves?.Find(x => x.Code == visual.VolCurve); if (volCurve != null) { hydroInfo.Curves?.RemoveAll(x => x.Code == visual.VolCurve); visual.VolCurve = string.Empty; changeHelper?.Append(volCurve, eChangeType.Remove); } } } } return result; } #endregion #region 闷头 /// /// 应用 /// public static bool Apply ( HydroBluntheadViewModel visualViewModel, HydroBluntheadMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroBluntheadInfo visual, HydroBluntheadMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingCaliber.HasValue) { if (visual.Caliber != matching.MatchingCaliber.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Caliber), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Caliber = matching.MatchingCaliber.Value; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } } return result; } #endregion #region 弯头 /// /// 应用 /// public static bool Apply ( HydroElbowViewModel visualViewModel, HydroElbowMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroElbowInfo visual, HydroElbowMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingCaliber.HasValue) { if (visual.Caliber != matching.MatchingCaliber.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Caliber), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Caliber = matching.MatchingCaliber.Value; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } if (matching.MatchingBendingAngle.HasValue) { if (visual.BendingAngle != matching.MatchingBendingAngle.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.BendingAngle), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.BendingAngle = matching.MatchingBendingAngle.Value; result = true; } if (matching.MatchingElbowType.HasValue) { var elbowType = HydroElbowTypeEnumHelper.GetElbowTypeName(matching.MatchingElbowType.Value); if (visual.ElbowType != elbowType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ElbowType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ElbowType = elbowType; result = true; } } return result; } #endregion #region 三通 /// /// 应用 /// public static bool Apply ( HydroThreelinkViewModel visualViewModel, HydroThreelinkMatchingViewModel matching, HydroChangeHelper changeHelper, HydroPropStatusHelper propStatusHelper ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroThreelinkInfo visual, HydroThreelinkMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingCaliber.HasValue) { if (visual.Caliber != matching.MatchingCaliber.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Caliber), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Caliber = matching.MatchingCaliber.Value; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } if (matching.MatchingRunningThroughLoss.HasValue) { if (visual.RunningThroughLoss != matching.MatchingRunningThroughLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.RunningThroughLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.RunningThroughLoss = matching.MatchingRunningThroughLoss.Value; result = true; } if (matching.MatchingBranchThroughLoss.HasValue) { if (visual.BranchThroughLoss != matching.MatchingBranchThroughLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.BranchThroughLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.BranchThroughLoss = matching.MatchingBranchThroughLoss.Value; result = true; } } return result; } #endregion #region 四通 /// /// 应用 /// public static bool Apply ( HydroFourlinkViewModel visualViewModel, HydroFourlinkMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroFourlinkInfo visual, HydroFourlinkMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingCaliber.HasValue) { if (visual.Caliber != matching.MatchingCaliber.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Caliber), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Caliber = matching.MatchingCaliber.Value; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } } return result; } #endregion #region 喷头 /// /// 应用 /// public static bool Apply ( HydroNozzleViewModel visualViewModel, HydroNozzleMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroNozzleInfo visual, HydroNozzleMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingCaliber.HasValue) { if (visual.Caliber != matching.MatchingCaliber.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Caliber), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Caliber = matching.MatchingCaliber.Value; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } if (matching.MatchingCoefficient.HasValue) { if (visual.Coefficient != matching.MatchingCoefficient.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Coefficient), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Coefficient = matching.MatchingCoefficient.Value; result = true; } } return result; } #endregion #region 消火栓 /// /// 应用 /// public static bool Apply ( HydroHydrantViewModel visualViewModel, HydroHydrantMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroHydrantInfo visual, HydroHydrantMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingCaliber.HasValue) { if (visual.Caliber != matching.MatchingCaliber.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Caliber), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Caliber = matching.MatchingCaliber.Value; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } if (matching.MatchingCoefficient.HasValue) { if (visual.Coefficient != matching.MatchingCoefficient.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Coefficient), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Coefficient = matching.MatchingCoefficient.Value; result = true; } } return result; } #endregion #region 冷却塔 /// /// 应用 /// public static bool Apply ( HydroCoolingViewModel visualViewModel, HydroCoolingMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroCoolingInfo visual, HydroCoolingMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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; //visual.LowerLimit = matching.LowerLimit; bool result = false; if (!visual.DbLocked) { if (!string.IsNullOrEmpty(matching.MatchingModelType)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingCaliber.HasValue) { if (visual.Caliber != matching.MatchingCaliber.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Caliber), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Caliber = matching.MatchingCaliber.Value; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } if (matching.MatchingCoefficient.HasValue) { if (visual.Coefficient != matching.MatchingCoefficient.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Coefficient), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Coefficient = matching.MatchingCoefficient.Value; result = true; } if (matching.MatchingLowerLimit.HasValue) { if (visual.LowerLimit != matching.MatchingLowerLimit.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.LowerLimit), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.LowerLimit = matching.MatchingLowerLimit.Value; result = true; } } return result; } #endregion #region 水表 /// /// 应用 /// public static bool Apply ( HydroMeterViewModel visualViewModel, HydroMeterMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroMeterInfo visual, HydroMeterMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } } return result; } #endregion #region 流量计 /// /// 应用 /// public static bool Apply ( HydroFlowmeterViewModel visualViewModel, HydroFlowmeterMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroFlowmeterInfo visual, HydroFlowmeterMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } } return result; } #endregion #region 压力表 /// /// 应用 /// public static bool Apply ( HydroPressmeterViewModel visualViewModel, HydroPressmeterMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPressmeterInfo visual, HydroPressmeterMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } } return result; } #endregion #region 管道 /// /// 应用 /// public static bool Apply ( HydroPipeViewModel visualViewModel, HydroPipeMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPipeInfo visual, HydroPipeMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingDiameter.HasValue) { if (visual.Diameter != matching.MatchingDiameter.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Diameter), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Diameter = matching.MatchingDiameter.Value; result = true; } if (matching.MatchingRoughness.HasValue) { if (visual.Roughness != matching.MatchingRoughness.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Roughness), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Roughness = matching.MatchingRoughness.Value; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } } return result; } #endregion #region 过渡件 /// /// 应用 /// public static bool Apply ( HydroTranslationViewModel visualViewModel, HydroTranslationMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroTranslationInfo visual, HydroTranslationMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingRoughness.HasValue) { if (visual.Roughness != matching.MatchingRoughness.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Roughness), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Roughness = matching.MatchingRoughness.Value; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } if (matching.MatchingStartDiameter.HasValue) { if (visual.StartDiameter != matching.MatchingStartDiameter.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.StartDiameter), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.StartDiameter = matching.MatchingStartDiameter.Value; result = true; } if (matching.MatchingEndDiameter.HasValue) { if (visual.EndDiameter != matching.MatchingEndDiameter.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.EndDiameter), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.EndDiameter = matching.MatchingEndDiameter.Value; result = true; } } return result; } #endregion #region 水泵 /// /// 应用 /// public static bool Apply ( HydroPumpViewModel visualViewModel, HydroPumpMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPumpInfo visual, HydroPumpMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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.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; bool result = false; if (!visual.DbLocked) { if (!string.IsNullOrEmpty(matching.MatchingModelType)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (matching.MatchingRatedQ.HasValue) { if (visual.RatedQ != matching.MatchingRatedQ.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.RatedQ), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.RatedQ = matching.MatchingRatedQ.Value; result = true; } if (matching.MatchingRatedH.HasValue) { if (visual.RatedH != matching.MatchingRatedH.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.RatedH), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.RatedH = matching.MatchingRatedH.Value; result = true; } if (matching.MatchingRatedP.HasValue) { if (visual.RatedP != matching.MatchingRatedP.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.RatedP), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.RatedP = matching.MatchingRatedP.Value; result = true; } if (matching.MatchingRatedN.HasValue) { if (visual.RatedN != matching.MatchingRatedN.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.RatedN), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.RatedN = matching.MatchingRatedN.Value; result = true; } if (matching.MatchingRatedHz.HasValue) { if (visual.RatedHz != matching.MatchingRatedHz.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.RatedHz), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.RatedHz = matching.MatchingRatedHz.Value; result = true; } if (matching.MatchingCurrentHz.HasValue) { var speedRatio = matching.MatchingCurrentHz.Value / visual.RatedHz; if (visual.SpeedRatio != speedRatio) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.SpeedRatio), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.SpeedRatio = speedRatio; result = true; } 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.HydroCurveType.CurveQH; curveqh.CurveData = matching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); if (hydroInfo.Curves == null) { hydroInfo.Curves = new List(); } hydroInfo.Curves.Add(curveqh); visual.CurveQH = curveqh.Code; changeHelper?.Append(curveqh, eChangeType.Add); changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQH), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); 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(); changeHelper?.Append(curveqh, eChangeType.Update); result = true; } } //流量功率曲线 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.HydroCurveType.CurveQP; curveqp.CurveData = matching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); if (hydroInfo.Curves == null) { hydroInfo.Curves = new List(); } hydroInfo.Curves.Add(curveqp); visual.CurveQP = curveqp.Code; changeHelper?.Append(curveqp, eChangeType.Add); changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQP), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); 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(); changeHelper?.Append(curveqp, eChangeType.Update); result = true; } } //流量效率曲线 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.HydroCurveType.CurveQE; curveqe.CurveData = matching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); if (hydroInfo.Curves == null) { hydroInfo.Curves = new List(); } hydroInfo.Curves.Add(curveqe); visual.CurveQE = curveqe.Code; changeHelper?.Append(curveqe, eChangeType.Add); changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQE), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); 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(); changeHelper?.Append(curveqe, eChangeType.Update); result = true; } } } } return result; } #endregion #region 阀门 /// /// 应用 /// public static bool Apply(HydroValveViewModel visualViewModel, HydroValveMatchingViewModel matching) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// 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; } 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; 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; } 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.HydroCurveType.CurveOL; // curveol.CurveData = matching.MatchingCurveOL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); // if (hydroInfo.Curves == null) // { // hydroInfo.Curves = new List(); // } // hydroInfo.Curves.Add(curveol); // //visual.ValveSetting = curveol.Code; // result = true; //} //else //{ // if (!curveol.DbLocked) // { // curveol.DbId = matching.MatchingCurveDbId; // curveol.CurveType = Yw.WinFrmUI.HydroCurveType.CurveOL; // 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.HydroCurveType.CurveQL; // curveql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); // if (hydroInfo.Curves == null) // { // hydroInfo.Curves = new List(); // } // hydroInfo.Curves.Add(curveql); // // visual.ValveSetting = curveql.Code; // result = true; //} //else //{ // if (!curveql.DbLocked) // { // curveql.DbId = matching.MatchingCurveDbId; // curveql.CurveType = Yw.WinFrmUI.HydroCurveType.CurveQL; // curveql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); // result = true; // } //} } } break; case Yw.Hydro.ValveType.CV: { } break; } } return result; } #endregion #region 换热器 /// /// 应用 /// public static bool Apply ( HydroExchangerViewModel visualViewModel, HydroExchangerMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroExchangerInfo visual, HydroExchangerMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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; bool result = false; if (!visual.DbLocked) { if (!string.IsNullOrEmpty(matching.MatchingModelType)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingDiameter.HasValue) { if (visual.Diameter != matching.MatchingDiameter.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Diameter), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Diameter = matching.MatchingDiameter.Value; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } 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.HydroCurveType.CurveQL; curvevql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); if (hydroInfo.Curves == null) { hydroInfo.Curves = new List(); } hydroInfo.Curves.Add(curvevql); visual.CurveQL = curvevql.Code; changeHelper?.Append(curvevql, eChangeType.Add); changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQL), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); 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(); changeHelper?.Append(curvevql, eChangeType.Update); result = true; } } } } return result; } #endregion #region 空压机 /// /// 应用 /// public static bool Apply ( HydroCompressorViewModel visualViewModel, HydroCompressorMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } /// /// 应用 /// public static bool Apply ( Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroCompressorInfo visual, HydroCompressorMatchingViewModel matching, HydroChangeHelper changeHelper = null, HydroPropStatusHelper propStatusHelper = null ) { 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; bool result = false; if (!visual.DbLocked) { if (!string.IsNullOrEmpty(matching.MatchingModelType)) { if (visual.ModelType != matching.MatchingModelType) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { if (visual.DbId != matching.MatchingDbId) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.DbId = matching.MatchingDbId; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingDiameter.HasValue) { if (visual.Diameter != matching.MatchingDiameter.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Diameter), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.Diameter = matching.MatchingDiameter.Value; result = true; } if (matching.MatchingMinorLoss.HasValue) { if (visual.MinorLoss != matching.MatchingMinorLoss.Value) { changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } 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.HydroCurveType.CurveQL; curvevql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); if (hydroInfo.Curves == null) { hydroInfo.Curves = new List(); } hydroInfo.Curves.Add(curvevql); visual.CurveQL = curvevql.Code; changeHelper?.Append(curvevql, eChangeType.Add); changeHelper?.Append(visual, eChangeType.Update); propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQL), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}通过产品配置匹配修改"); 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(); changeHelper?.Append(curvevql, eChangeType.Update); result = true; } } } } return result; } #endregion #endregion } }