namespace Yw.WinFrmUI { /// /// 水力组件属性状态辅助类 /// public static class HydroParterPropStatusHelper { /// /// 获取属性状态 /// public static HydroParterPropStatusViewModel GetPropStatus(this HydroParterPropertyViewModel rhs, string propName) { var propStatus = rhs.PropStatusList?.Find(x => x.PropName == propName); return propStatus; } /// /// 获取属性状态 /// public static Yw.Model.HydroParterPropStatusInfo GetPropStatus(this Yw.Model.HydroParterInfo rhs, string propName) { var propStatus = rhs.PropStatusList?.Find(x => x.PropName == propName); return propStatus; } /// /// 更新属性状态 /// public static void UpdatePropStatus(this HydroParterPropertyViewModel vm, string propNameViewModel, Yw.Model.HydroParterInfo info, string propNameInfo) { var propStatusViewModel = vm.GetPropStatus(propNameViewModel); var propStatusInfo = info.GetPropStatus(propNameInfo); if (propStatusInfo == null) { if (propStatusViewModel != null) { vm.PropStatusList.Remove(propStatusViewModel); } return; } if (propStatusViewModel == null) { propStatusViewModel = new HydroParterPropStatusViewModel() { PropName = propNameViewModel, PropStatus = propStatusInfo.PropStatus, StatusInfo = propStatusInfo.StatusInfo }; if (vm.PropStatusList == null) { vm.PropStatusList = new List(); } vm.PropStatusList.Add(propStatusViewModel); } else { propStatusViewModel.PropStatus = propStatusInfo.PropStatus; propStatusViewModel.StatusInfo = propStatusInfo.StatusInfo; } } /// /// 更新属性状态 /// public static void UpdatePropStatus(this Yw.Model.HydroParterInfo info, string propNameInfo, HydroParterPropertyViewModel vm, string propNameViewModel) { var propStatusInfo = info.GetPropStatus(propNameInfo); var propStatusViewModel = vm.GetPropStatus(propNameViewModel); if (propStatusViewModel == null) { if (propStatusInfo != null) { info.PropStatusList.Remove(propStatusInfo); } return; } if (propStatusInfo == null) { propStatusInfo = new Model.HydroParterPropStatusInfo() { PropName = propNameInfo, PropStatus = propStatusViewModel.PropStatus, StatusInfo = propStatusViewModel.StatusInfo }; if (info.PropStatusList == null) { info.PropStatusList = new List(); } info.PropStatusList.Add(propStatusInfo); } else { propStatusInfo.PropStatus = propStatusViewModel.PropStatus; propStatusInfo.StatusInfo = propStatusViewModel.StatusInfo; } } } }