using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using Yw.Model;
|
|
namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 水力更改辅助类
|
/// </summary>
|
public class HydroChangeHelper
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public HydroChangeHelper(Yw.Model.HydroModelInfo hydroInfo)
|
{
|
_hydroInfo = hydroInfo;
|
}
|
|
private readonly Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
|
private List<HydroParterInfo> _addParterList = new();//增加构件列表
|
private List<HydroParterInfo> _updateParterList = new();//更新构件列表
|
private List<HydroParterInfo> _removeParterList = new(); //移除构件列表
|
|
/// <summary>
|
/// 附加
|
/// </summary>
|
public void Append(HydroParterInfo parter, eChangeType changeType)
|
{
|
if (parter == null)
|
{
|
return;
|
}
|
var allParterList = _hydroInfo.GetAllParters();
|
switch (changeType)
|
{
|
case eChangeType.Add:
|
{
|
if (!_addParterList.Exists(x => x.Code == parter.Code))
|
{
|
if (allParterList.Exists(x => x.Code == parter.Code))
|
{
|
_addParterList.Add(parter);
|
}
|
}
|
}
|
break;
|
case eChangeType.Update:
|
{
|
if (!_updateParterList.Exists(x => x.Code == parter.Code))
|
{
|
if (allParterList.Exists(x => x.Code == parter.Code))
|
{
|
if (!_addParterList.Exists(x => x.Code == parter.Code))
|
{
|
_updateParterList.Add(parter);
|
}
|
}
|
}
|
}
|
break;
|
case eChangeType.Remove:
|
{
|
if (!_removeParterList.Exists(x => x.Code == parter.Code))
|
{
|
if (!allParterList.Exists(x => x.Code == parter.Code))
|
{
|
_removeParterList.Add(parter);
|
}
|
}
|
}
|
break;
|
default: break;
|
}
|
}
|
|
/// <summary>
|
/// 获取新增构件列表
|
/// </summary>
|
public List<HydroParterInfo> GetAddParterList()
|
{
|
return _addParterList.ToList();
|
}
|
|
/// <summary>
|
/// 获取更新构件列表
|
/// </summary>
|
public List<HydroParterInfo> GetUpdateParterList()
|
{
|
return _updateParterList.ToList();
|
}
|
|
/// <summary>
|
/// 获取移除构件列表
|
/// </summary>
|
public List<string> GetRemoveParters()
|
{
|
return _removeParterList.Select(x => x.Code).Distinct().ToList();
|
}
|
|
|
}
|
}
|