using DevExpress.Mvvm.Native;
|
using Yw.EPAnet;
|
using Yw.Model;
|
|
namespace HStation.WinFrmUI
|
{
|
/// <summary>
|
/// 可见视图列表辅助类
|
/// </summary>
|
public class SimulationVisualVmListHelper
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public SimulationVisualVmListHelper
|
(
|
SimulationVisualListHelper visualListHelper,
|
SimulationCalcuResultHelper calcuResultHelper
|
)
|
{
|
_visualListHelper = visualListHelper;
|
_calcuResultHelper = calcuResultHelper;
|
_visualListHelper.InitialEvent += () => Initial();
|
Initial();
|
}
|
|
private SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类
|
private SimulationCalcuResultHelper _calcuResultHelper = null;//计算结果辅助类
|
private Dictionary<string, HydroVisualViewModel> _dict;//字典
|
|
//初始化
|
private void Initial()
|
{
|
_dict = new Dictionary<string, HydroVisualViewModel>();
|
var allVisualDict = _visualListHelper.GetVisualDict();
|
if (allVisualDict != null && allVisualDict.Count > 0)
|
{
|
var allCalcuResultVisualDict = _calcuResultHelper.GetVisualDict();
|
foreach (var visualKeyValue in allVisualDict)
|
{
|
var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visualKeyValue.Value, _visualListHelper.HydroInfo);
|
var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
|
if (calcuVisualResult != null)
|
{
|
vm.UpdateCalcuProperty(calcuVisualResult);
|
}
|
_dict.Add(visualKeyValue.Key, vm);
|
}
|
}
|
}
|
|
/// <summary>
|
/// 获取可见视图字典
|
/// </summary>
|
public Dictionary<string, HydroVisualViewModel> GetVisualDict()
|
{
|
return _dict;
|
}
|
|
/// <summary>
|
/// 获取可见视图列表
|
/// </summary>
|
public List<HydroVisualViewModel> GetVisualList()
|
{
|
var dict = GetVisualDict();
|
return dict?.Values.ToList();
|
}
|
|
/// <summary>
|
/// 获取可见视图
|
/// </summary>
|
public HydroVisualViewModel GetVisual(string code)
|
{
|
if (string.IsNullOrEmpty(code))
|
{
|
return default;
|
}
|
var dict = GetVisualDict();
|
if (dict == null || dict.Count < 1)
|
{
|
return default;
|
}
|
if (dict.ContainsKey(code))
|
{
|
return dict[code];
|
}
|
return default;
|
}
|
|
/// <summary>
|
/// 获取可见视图列表
|
/// </summary>
|
public List<HydroVisualViewModel> GetVisualList(List<string> codes)
|
{
|
var list = codes?.Select(x => GetVisual(x)).Where(x => x != null).ToList();
|
return list;
|
}
|
|
/// <summary>
|
/// 获取可见视图
|
/// </summary>
|
public HydroVisualViewModel GetVisual(HydroVisualInfo visual)
|
{
|
return GetVisual(visual?.Code);
|
}
|
|
/// <summary>
|
/// 获取可见视图列表
|
/// </summary>
|
public List<HydroVisualViewModel> GetVisualList(List<HydroVisualInfo> visualList)
|
{
|
return visualList?.Select(x => GetVisual(x)).Where(x => x != null).ToList();
|
}
|
|
/// <summary>
|
/// 更新属性
|
/// </summary>
|
public void UpdateProperty()
|
{
|
var dict = GetVisualDict();
|
dict?.ForEach(x => x.Value.UpdateProperty());
|
}
|
|
/// <summary>
|
/// 更新属性
|
/// </summary>
|
public void UpdateProperty(string code)
|
{
|
var visual = GetVisual(code);
|
visual?.UpdateProperty();
|
}
|
|
/// <summary>
|
/// 更新属性
|
/// </summary>
|
public void UpdateProperty(List<string> codes)
|
{
|
var visualList = GetVisualList(codes);
|
visualList?.ForEach(x => x.UpdateProperty());
|
}
|
|
/// <summary>
|
/// 更新属性
|
/// </summary>
|
public void UpdateProperty(HydroVisualInfo visual)
|
{
|
UpdateProperty(visual?.Code);
|
}
|
|
/// <summary>
|
/// 更新属性
|
/// </summary>
|
public void UpdateProperty(List<HydroVisualInfo> visualList)
|
{
|
var codes = visualList?.Select(x => x.Code).Distinct().ToList();
|
UpdateProperty(codes);
|
}
|
|
/// <summary>
|
/// 更新计算属性
|
/// </summary>
|
public void UpdateCalcuProperty(HydroCalcuResult calcuResult)
|
{
|
var dict = GetVisualDict();
|
if (dict == null || dict.Count < 1)
|
{
|
return;
|
}
|
var allCalcuResultVisualDict = calcuResult?.GetVisualDict();
|
foreach (var visualKeyValue in dict)
|
{
|
var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
|
visualKeyValue.Value.UpdateCalcuProperty(calcuVisualResult);
|
}
|
}
|
|
|
|
|
|
|
}
|
}
|