namespace Yw.WinFrmUI
{
///
///
///
public class HydroMonitorAnalyHelper
{
///
/// 创建
///
public static HydroMonitorAnalyViewModel Create
(
Yw.Model.HydroModelInfo hydroInfo,
List allMonitorList,
Yw.Vmo.HydroWorkingVmo working,
HydroCalcuResult calcuResult = null,
bool isHead = false,
List 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();
foreach (var monitor in allMonitorList)
{
var item = new HydroMonitorAnalyItemViewModel(monitor, allVisualDict, allCalcuVisualDict);
vm.Items.Add(item);
}
return vm;
}
}
}