using Yw.Hydro; using Yw.Model; using Yw.Service; namespace Yw.WinFrmUI { /// /// 构件属性辅助类 /// public class HydroPropStatusHelper { /// /// /// public HydroPropStatusHelper ( Yw.Model.HydroModelInfo hydroInfo, List allPropStatusDbList ) { _hydroInfo = hydroInfo; _dict = _hydroInfo.ToPropStatusInfoDict(allPropStatusDbList); } private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息 private Dictionary> _dict = null;//字典 private Dictionary> _dictUpdate = null;//更新字典 /// /// 获取属性状态信息 /// public HydroParterPropStatusInfo GetPropStatusInfo(string code, string propNameInfo) { if (string.IsNullOrEmpty(code)) { return default; } if (string.IsNullOrEmpty(propNameInfo)) { return default; } if (_dict == null) { _dict = new Dictionary>(); } if (!_dict.ContainsKey(code)) { _dict.Add(code, new List()); } if (_dict[code] == null) { _dict[code] = new List(); } var list = _dict[code]; var propStatusInfo = list.Find(x => x.PropName == propNameInfo); return propStatusInfo; } /// /// 获取属性状态Db列表 /// public List GetPropStatusDbList() { return _hydroInfo.ToPropStatusDbList(_dict); } /// /// 获取更新属性状态Db列表 /// /// public List GetUpdatePropStatusDbList() { return _hydroInfo.ToPropStatusDbList(_dictUpdate); } /// /// 重置 /// public void Reset() { _dictUpdate?.Clear(); } /// /// 更新属性状态 /// public void UpdatePropStatus(Yw.Model.HydroParterInfo parter, string propNameInfo, ePropStatus propStatus, string statusInfo) { UpdatePropStatus(parter?.Code, propNameInfo, propStatus, statusInfo); } /// /// 更新属性状态 /// public void UpdatePropStatus(string code, string propNameInfo, ePropStatus propStatus, string statusInfo) { if (string.IsNullOrEmpty(code)) { return; } if (string.IsNullOrEmpty(propNameInfo)) { return; } if (_dict == null) { _dict = new Dictionary>(); } if (!_dict.ContainsKey(code)) { _dict.Add(code, new List()); } if (_dict[code] == null) { _dict[code] = new List(); } var list = _dict[code]; var propStatusInfo = list.Find(x => x.PropName == propNameInfo); if (propStatusInfo == null) { propStatusInfo = new HydroParterPropStatusInfo() { Parter = code, PropName = propNameInfo }; list.Add(propStatusInfo); } propStatusInfo.PropStatus = propStatus; propStatusInfo.StatusInfo = statusInfo; AppendUpdatePropStatus(propStatusInfo); } //附加更新属性状态 private void AppendUpdatePropStatus(HydroParterPropStatusInfo propStatusInfo) { if (propStatusInfo == null) { return; } if (string.IsNullOrEmpty(propStatusInfo.Parter)) { return; } if (string.IsNullOrEmpty(propStatusInfo.PropName)) { return; } if (_dictUpdate == null) { _dictUpdate = new Dictionary>(); } if (!_dictUpdate.ContainsKey(propStatusInfo.Parter)) { _dictUpdate.Add(propStatusInfo.Parter, new List()); } if (_dictUpdate[propStatusInfo.Parter] == null) { _dictUpdate[propStatusInfo.Parter] = new List(); } var list = _dictUpdate[propStatusInfo.Parter]; list.RemoveAll(x => x.PropName == propStatusInfo.PropName); list.Add(propStatusInfo); } } }