using Yw.Model;
namespace Yw.WinFrmUI
{
///
/// 水力更改辅助类
///
public class HydroChangeHelper
{
///
///
///
public HydroChangeHelper(Yw.Model.HydroModelInfo hydroInfo)
{
_hydroInfo = hydroInfo;
}
private readonly Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
private List _addParterList = new();//增加构件列表
private List _updateParterList = new();//更新构件列表
private List _removeParterList = new(); //移除构件列表
///
/// 附加
///
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;
}
}
///
/// 获取新增构件列表
///
public List GetAddParterList()
{
return _addParterList.ToList();
}
///
/// 获取更新构件列表
///
public List GetUpdateParterList()
{
return _updateParterList.ToList();
}
///
/// 获取移除构件列表
///
public List GetRemoveParters()
{
return _removeParterList.Select(x => x.Code).Distinct().ToList();
}
///
/// 重置
///
public void Reset()
{
_addParterList.Clear();
_updateParterList.Clear();
_removeParterList.Clear();
}
}
}