namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class HydroMonitorAnalyHelper
|
{
|
/// <summary>
|
/// 创建
|
/// </summary>
|
public static HydroMonitorAnalyViewModel Create
|
(
|
Yw.Model.HydroModelInfo hydroInfo,
|
List<Yw.Vmo.HydroMonitorVmo> allMonitorList,
|
Yw.Vmo.HydroWorkingVmo working,
|
HydroCalcuResult calcuResult = null,
|
bool isHead = false,
|
List<Yw.Vmo.HydroEvaluationVmo> allEvaluationList = null
|
)
|
{
|
//验证
|
if (hydroInfo == null)
|
{
|
return default;
|
}
|
if (allMonitorList == null || allMonitorList.Count < 1)
|
{
|
return default;
|
}
|
if (working == null)
|
{
|
return default;
|
}
|
|
var vm = new HydroMonitorAnalyViewModel();
|
|
//构件列表
|
var allVisualDict = hydroInfo.GetVisualDict();
|
if (allVisualDict == null || allVisualDict.Count < 1)
|
{
|
return vm;
|
}
|
|
//计算结果
|
if (calcuResult == null)
|
{
|
hydroInfo.UpdateWorkingInfo(working.WorkingInfo);
|
calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList);
|
if (!calcuResult.Succeed)
|
{
|
return vm;
|
}
|
}
|
var allCalcuVisualDict = calcuResult.GetVisualDict();
|
|
//遍历测点
|
vm.Items = new List<HydroMonitorAnalyItemViewModel>();
|
foreach (var monitor in allMonitorList)
|
{
|
var item = new HydroMonitorAnalyItemViewModel(monitor, allVisualDict, allCalcuVisualDict);
|
vm.Items.Add(item);
|
}
|
|
return vm;
|
}
|
|
}
|
}
|