namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 水力组件属性状态辅助类
|
/// </summary>
|
public static class HydroParterPropStatusHelper
|
{
|
|
/// <summary>
|
/// 获取属性状态
|
/// </summary>
|
public static HydroParterPropStatusViewModel GetPropStatus(this HydroParterPropertyViewModel rhs, string propName)
|
{
|
if (rhs == null)
|
{
|
return default;
|
}
|
var propStatus = rhs.PropStatusList?.Find(x => x.PropName == propName);
|
return propStatus;
|
}
|
|
/// <summary>
|
/// 更新属性状态
|
/// </summary>
|
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<HydroParterPropStatusViewModel>();
|
}
|
vm.PropStatusList.Add(propStatusViewModel);
|
}
|
else
|
{
|
propStatusViewModel.PropStatus = propStatusInfo.PropStatus;
|
propStatusViewModel.StatusInfo = propStatusInfo.StatusInfo;
|
}
|
}
|
|
/// <summary>
|
/// 更新属性状态
|
/// </summary>
|
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<Model.HydroParterPropStatusInfo>();
|
}
|
info.PropStatusList.Add(propStatusInfo);
|
}
|
else
|
{
|
propStatusInfo.PropStatus = propStatusViewModel.PropStatus;
|
propStatusInfo.StatusInfo = propStatusViewModel.StatusInfo;
|
}
|
}
|
|
|
|
|
|
|
|
}
|
}
|