| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Yw.Hydro; |
| | | using Yw.Hydro; |
| | | using Yw.Model; |
| | | using Yw.Service; |
| | | |
| | | namespace Yw.WinFrmUI |
| | | { |
| | | /// <summary> |
| | | /// 属性状态辅助类 |
| | | /// 构件属性辅助类 |
| | | /// </summary> |
| | | public class HydroPropStatusHelper |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public HydroPropStatusHelper |
| | | ( |
| | | Yw.Model.HydroModelInfo hydroInfo, |
| | | List<Yw.Model.HydroParterPropStatusInfo> allPropStatusDbList |
| | | ) |
| | | { |
| | | _hydroInfo = hydroInfo; |
| | | _dict = _hydroInfo.ToPropStatusInfoDict(allPropStatusDbList); |
| | | } |
| | | |
| | | private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息 |
| | | private Dictionary<string, List<Yw.Model.HydroParterPropStatusInfo>> _dict = null;//字典 |
| | | private Dictionary<string, List<Yw.Model.HydroParterPropStatusInfo>> _dictUpdate = null;//更新字典 |
| | | |
| | | /// <summary> |
| | | /// 获取属性状态信息 |
| | | /// </summary> |
| | | 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<string, List<Model.HydroParterPropStatusInfo>>(); |
| | | } |
| | | if (!_dict.ContainsKey(code)) |
| | | { |
| | | _dict.Add(code, new List<Model.HydroParterPropStatusInfo>()); |
| | | } |
| | | if (_dict[code] == null) |
| | | { |
| | | _dict[code] = new List<Model.HydroParterPropStatusInfo>(); |
| | | } |
| | | var list = _dict[code]; |
| | | var propStatusInfo = list.Find(x => x.PropName == propNameInfo); |
| | | return propStatusInfo; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取属性状态Db列表 |
| | | /// </summary> |
| | | public List<Yw.Model.HydroParterPropStatusInfo> GetPropStatusDbList() |
| | | { |
| | | return _hydroInfo.ToPropStatusDbList(_dict); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取更新属性状态Db列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public List<Yw.Model.HydroParterPropStatusInfo> GetUpdatePropStatusDbList() |
| | | { |
| | | return _hydroInfo.ToPropStatusDbList(_dictUpdate); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 重置 |
| | | /// </summary> |
| | | public void Reset() |
| | | { |
| | | _dictUpdate?.Clear(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新属性状态 |
| | | /// </summary> |
| | | public void UpdatePropStatus(Yw.Model.HydroParterInfo parter, string propNameInfo, ePropStatus propStatus, string statusInfo) |
| | | { |
| | | UpdatePropStatus(parter?.Code, propNameInfo, propStatus, statusInfo); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新属性状态 |
| | | /// </summary> |
| | | 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<string, List<Model.HydroParterPropStatusInfo>>(); |
| | | } |
| | | if (!_dict.ContainsKey(code)) |
| | | { |
| | | _dict.Add(code, new List<Model.HydroParterPropStatusInfo>()); |
| | | } |
| | | if (_dict[code] == null) |
| | | { |
| | | _dict[code] = new List<Model.HydroParterPropStatusInfo>(); |
| | | } |
| | | 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<string, List<HydroParterPropStatusInfo>>(); |
| | | } |
| | | if (!_dictUpdate.ContainsKey(propStatusInfo.Parter)) |
| | | { |
| | | _dictUpdate.Add(propStatusInfo.Parter, new List<HydroParterPropStatusInfo>()); |
| | | } |
| | | if (_dictUpdate[propStatusInfo.Parter] == null) |
| | | { |
| | | _dictUpdate[propStatusInfo.Parter] = new List<Model.HydroParterPropStatusInfo>(); |
| | | } |
| | | var list = _dictUpdate[propStatusInfo.Parter]; |
| | | list.RemoveAll(x => x.PropName == propStatusInfo.PropName); |
| | | list.Add(propStatusInfo); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |