using System.Globalization;
namespace HStation.WinFrmUI
{
///
///
///
public class HydroQ3dTransferHelper
{
///
/// 转换
///
/// 模型信息
///
public static object Transfer(Yw.Model.HydroModelInfo info)
{
if (info == null)
{
return default;
}
//var netWork = new HyView.MapViewNetWork();
//netWork.Nodes = new HyView.NodeViewModelList();
//netWork.Links = new HyView.LinkViewModelList();
//连接节点
if (info.Junctions != null && info.Junctions.Count > 0)
{
foreach (var junction in info.Junctions)
{
//var junctionModel = new HyView.JunctionViewModel();
//junctionModel.ID = junction.Code;
//junctionModel.Name = junction.Name;
//junctionModel.X = (float)junction.Position3d.X;
//junctionModel.Y = (float)junction.Position3d.Y;
////junctionModel.Z = (float)junction.Position3d.Z;
//junctionModel.Position3D = new HyView.PointF3D((float)junction.Position3d.X, (float)junction.Position3d.Y, (float)junction.Position3d.Z);
//junctionModel.Elev = (float)junction.Elev;
//junctionModel.Demand = junction.Demand.HasValue ? (float)junction.Demand.Value : 0;
//junctionModel.PatternID = junction.DemandPattern;
////junctionModel.Status = StatusType.DEFAULT;
//netWork.Nodes.Add(junctionModel);
//netWork.Nodes.Add(junctionModel);
}
}
//水库
if (info.Reservoirs != null && info.Reservoirs.Count > 0)
{
foreach (var reservoir in info.Reservoirs)
{
//var reservoirModel = new HyView.ReservoirViewModel();
//reservoirModel.ID = reservoir.Code;
//reservoirModel.Name = reservoir.Name;
//reservoirModel.X = (float)reservoir.Position3d.X;
//reservoirModel.Y = (float)reservoir.Position3d.Y;
////reservoirModel.Z = (float)reservoir.Position3d.Z;
//reservoirModel.Demand = 0;
//reservoirModel.Head = (float)reservoir.Head;
//reservoirModel.PatternID = reservoir.HeadPattern;
//reservoirModel.Position3D = new HyView.PointF3D((float)reservoir.Position3d.X, (float)reservoir.Position3d.Y, (float)reservoir.Position3d.Z);
//netWork.Nodes.Add(reservoirModel);
}
}
//水池
if (info.Tanks != null && info.Tanks.Count > 0)
{
foreach (var tank in info.Tanks)
{
//var tankModel = new HyView.TankViewModel();
//tankModel.ID = tank.Code;
//tankModel.Name = tank.Name;
//tankModel.X = (float)tank.Position3d.X;
//tankModel.Y = (float)tank.Position3d.Y;
////tankModel.Z = (float)tank.Position3d.Z;
//tankModel.Demand = 0;
//tankModel.Diameter = (float)tank.Diameter;
//tankModel.Elev = (float)tank.PoolElev;
//tankModel.InitLevel = (float)tank.InitLevel;
//tankModel.MinLevel = (float)tank.MinLevel;
//tankModel.MaxLevel = (float)tank.MaxLevel;
//tankModel.MinVol = (float)tank.MinVol;
//tankModel.VolCurve = tank.VolCurve;
//tankModel.Position3D = new HyView.PointF3D((float)tank.Position3d.X, (float)tank.Position3d.Y, (float)tank.Position3d.Z);
//netWork.Nodes.Add(tankModel);
}
}
//管道
if (info.Pipes != null && info.Pipes.Count > 0)
{
foreach (var pipe in info.Pipes)
{
//var pipeModel = new HyView.PipeViewModel();
//pipeModel.ID = pipe.Code;
//pipeModel.Name = pipe.Name;
//// pipeModel.Status = StatusType.OPEN;
//pipeModel.StartNode = netWork.Nodes.Find(x => x.ID == pipe.StartCode);
//pipeModel.EndNode = netWork.Nodes.Find(x => x.ID == pipe.EndCode);
//pipeModel.Diameter = (float)pipe.Diameter;
//pipeModel.Length = (float)pipe.Length;
//pipeModel.Roughness = (float)pipe.Roughness;
//pipeModel.MinorLoss = (float)pipe.MinorLoss;
//netWork.Links.Add(pipeModel);
}
}
//水泵
if (info.Pumps != null && info.Pumps.Count > 0)
{
foreach (var pump in info.Pumps)
{
//var pumpModel = new HyView.PumpViewModel();
//pumpModel.ID = pump.Code;
//pumpModel.Name = pump.Name;
////pumpModel.Status = StatusType.OPEN;
//pumpModel.StartNode = netWork.Nodes.Find(x => x.ID == pump.StartCode);
//pumpModel.EndNode = netWork.Nodes.Find(x => x.ID == pump.EndCode);
//pumpModel.HeadCurve = pump.CurveQH;
//netWork.Links.Add(pumpModel);
}
}
//阀门
if (info.Valves != null && info.Valves.Count > 0)
{
foreach (var valve in info.Valves)
{
//var valveModel = new HyView.ValveViewModel();
//valveModel.ID = valve.Code;
//valveModel.Name = valve.Name;
////valveModel.Status = StatusType.OPEN;
//valveModel.StartNode = netWork.Nodes.Find(x => x.ID == valve.StartCode);
//valveModel.EndNode = netWork.Nodes.Find(x => x.ID == valve.EndCode);
//valveModel.Diameter = (float)valve.Diameter;
//valveModel.Type = valve.ValveType;
//valveModel.Setting = valve.ValveSetting;
//netWork.Links.Add(valveModel);
}
}
return default;
}
}
}