| | |
| | | public NetWork() |
| | | { |
| | | } |
| | | public string Title { get; set; } |
| | | |
| | | private List<JunctionModel> Junctions { get; set; } = new List<JunctionModel>(); |
| | | public List<JunctionModel> Junctions |
| | | { |
| | | get |
| | | { |
| | | var js = Nodes.Where(d => d is JunctionModel); |
| | | return js?.Select(d => d as JunctionModel).ToList(); |
| | | } |
| | | |
| | | private List<TankModel> Tanks { get; set; } = new List<TankModel>(); |
| | | } |
| | | public List<TankModel> Tanks |
| | | { |
| | | get |
| | | { |
| | | var js = Nodes.Where(d => d is TankModel); |
| | | return js?.Select(d => d as TankModel).ToList(); |
| | | } |
| | | } |
| | | |
| | | private List<PipeModel> Pipes { get; set; } = new List<PipeModel>(); |
| | | public List<PipeModel> Pipes |
| | | { |
| | | get |
| | | { |
| | | var js = Links.Where(d => d is PipeModel); |
| | | return js?.Select(d => d as PipeModel).ToList(); |
| | | } |
| | | } |
| | | |
| | | private List<PumpModel> Pumps { get; set; } = new List<PumpModel>(); |
| | | public List<PumpModel> Pumps |
| | | { |
| | | get |
| | | { |
| | | var js = Links.Where(d => d is PumpModel); |
| | | return js?.Select(d => d as PumpModel).ToList(); |
| | | } |
| | | } |
| | | |
| | | private List<ValveModel> Valves { get; set; } = new List<ValveModel>(); |
| | | public List<ValveModel> Valves |
| | | { |
| | | get |
| | | { |
| | | var js = Links.Where(d => d is ValveModel); |
| | | return js?.Select(d => d as ValveModel).ToList(); |
| | | } |
| | | } |
| | | |
| | | private List<ReservoisModel> Reservos { get; set; } = new List<ReservoisModel>(); |
| | | public List<ReservoisModel> Reservos |
| | | { |
| | | get |
| | | { |
| | | var js = Nodes.Where(d => d is ReservoisModel); |
| | | return js?.Select(d => d as ReservoisModel).ToList(); |
| | | } |
| | | } |
| | | |
| | | private List<MeterModel> Meters { get; set; } = new List<MeterModel>(); |
| | | public List<MeterModel> Meters |
| | | { |
| | | get |
| | | { |
| | | var js = Nodes.Where(d => d is MeterModel); |
| | | return js?.Select(d => d as MeterModel).ToList(); |
| | | } |
| | | } |
| | | |
| | | private List<NozzleModel> Nozzles { get; set; } = new List<NozzleModel>(); |
| | | public List<NozzleModel> Nozzles |
| | | { |
| | | get |
| | | { |
| | | var js = Nodes.Where(d => d is NozzleModel); |
| | | return js?.Select(d => d as NozzleModel).ToList(); |
| | | } |
| | | } |
| | | |
| | | public void AddJunction(JunctionModel junction) |
| | | { |
| | | Junctions.Add(junction); |
| | | CheckNodesExist(junction); |
| | | Nodes.Add(junction); |
| | | } |
| | | |
| | | public void AddTank(TankModel tank) |
| | | { |
| | | Tanks.Add(tank); |
| | | CheckNodesExist(tank); |
| | | Nodes.Add(tank); |
| | | } |
| | | |
| | | public void AddPipe(PipeModel pipe) |
| | | { |
| | | Pipes.Add(pipe); |
| | | CheckLinksExist(pipe); |
| | | Links.Add(pipe); |
| | | } |
| | | |
| | | public void AddPump(PumpModel pump) |
| | | { |
| | | Pumps.Add(pump); |
| | | CheckLinksExist(pump); |
| | | Links.Add(pump); |
| | | } |
| | | |
| | | public void AddValve(ValveModel valve) |
| | | { |
| | | Valves.Add(valve); |
| | | CheckLinksExist(valve); |
| | | Links.Add(valve); |
| | | } |
| | | |
| | | public void AddReservos(ReservoisModel reservois) |
| | | { |
| | | Reservos.Add(reservois); |
| | | CheckNodesExist(reservois); |
| | | Nodes.Add(reservois); |
| | | } |
| | | |
| | | public void AddMeter(MeterModel meter) |
| | | { |
| | | Meters.Add(meter); |
| | | CheckNodesExist(meter); |
| | | Nodes.Add(meter); |
| | | Junctions.Add(meter.ToJunction()); |
| | | } |
| | | |
| | | public void AddNozzle(NozzleModel nozzle) |
| | | { |
| | | Nozzles.Add(nozzle); |
| | | CheckNodesExist(nozzle); |
| | | Nodes.Add(nozzle); |
| | | Junctions.Add(nozzle.ToJunction()); |
| | | } |
| | | |
| | | |
| | | private void CheckNodesExist(NodeModel node) |
| | | { |
| | | if (Nodes.Any(d => d.ID == node.ID)) |
| | | throw new Exception("已存在重复的对象"); |
| | | } |
| | | |
| | | private void CheckLinksExist(LinkModel link) |
| | | { |
| | | if (Links.Any(d => d.ID == link.ID)) |
| | | throw new Exception("已存在重复的对象"); |
| | | } |
| | | |
| | | public List<NodeModel> Nodes { get; set; } = new List<NodeModel>(); |
| | |
| | | Elev = Elev, |
| | | Demand = Demand, |
| | | PatternID = PatternID, |
| | | Level = Level |
| | | }); |
| | | } |
| | | else if (parts[5] == "Nozzle") |
| | |
| | | Elev = Elev, |
| | | Demand = Demand, |
| | | PatternID = PatternID, |
| | | Level = Level |
| | | }); |
| | | } |
| | | else |
| | |
| | | Elev = Elev, |
| | | Demand = Demand, |
| | | PatternID = PatternID, |
| | | Level = Level |
| | | }); |
| | | } |
| | | |
| | |
| | | r.Head = head; |
| | | r.PatternID = parts.Length > 2 ? parts[2] : ""; |
| | | int level; |
| | | if (int.TryParse(parts[3], out level)) |
| | | r.Level = level; |
| | | //if (int.TryParse(parts[3], out level)) |
| | | // r.Level = level; |
| | | AddReservos(r); |
| | | } |
| | | break; |
| | |
| | | VolCurve = "", |
| | | IsOverFlow = true |
| | | }; |
| | | int level; |
| | | if (int.TryParse(parts[9], out level)) |
| | | tank.Level = level; |
| | | //int level; |
| | | //if (int.TryParse(parts[9], out level)) |
| | | // tank.Level = level; |
| | | AddTank(tank); |
| | | } |
| | | break; |
| | |
| | | if (float.TryParse(parts[6], out minorLoss)) |
| | | p.MinorLoss = minorLoss; |
| | | p.Status = parts.Length > 7 ? StatusType.CLOSED : StatusType.DEFAULT; |
| | | int level; |
| | | if (int.TryParse(parts[8], out level)) |
| | | p.Level = level; |
| | | //int level; |
| | | //if (int.TryParse(parts[8], out level)) |
| | | // p.Level = level; |
| | | AddPipe(p); |
| | | } |
| | | break; |
| | |
| | | float minorLoss; |
| | | if (float.TryParse(parts[6], out minorLoss)) |
| | | valve.MinorLoss = minorLoss; |
| | | int level; |
| | | if (int.TryParse(parts[7], out level)) |
| | | valve.Level = level; |
| | | //int level; |
| | | //if (int.TryParse(parts[7], out level)) |
| | | // valve.Level = level; |
| | | AddValve(valve); |
| | | } |
| | | break; |
| | |
| | | |
| | | Junctions.ForEach(j => |
| | | { |
| | | junctionStringBuilder.AppendLine(j.ToString() + $"{j.Level}\tJunction"); |
| | | junctionStringBuilder.AppendLine(j.ToString() + $"0\tJunction"); |
| | | coorStringBuilder.AppendLine(j.ToCoorString()); |
| | | |
| | | }); |
| | | Meters.ForEach(m => |
| | | { |
| | | junctionStringBuilder.AppendLine(m.ToString() + $"{m.Level}\tMeter"); |
| | | junctionStringBuilder.AppendLine(m.ToString() + $"0\tJunction"); |
| | | coorStringBuilder.AppendLine(m.ToCoorString()); |
| | | }); |
| | | Nozzles.ForEach(no => |
| | | { |
| | | junctionStringBuilder.AppendLine(no.ToString() + $"{no.Level}\tNozzle\t{no.FlowCoefficient}"); |
| | | junctionStringBuilder.AppendLine(no.ToString() + $"0\tNozzle\t{no.FlowCoefficient}"); |
| | | emitterStringBuilder.Append(no.ToEmitterString()); |
| | | coorStringBuilder.AppendLine(no.ToCoorString()); |
| | | }); |
| | |
| | | |
| | | Reservos.ForEach(o => |
| | | { |
| | | reservoirStringBuilder.AppendLine(o.ToString() + $"{o.Level}\t{o.Elev}"); |
| | | reservoirStringBuilder.AppendLine(o.ToString() + $"0\t{o.Elev}"); |
| | | coorStringBuilder.AppendLine(o.ToCoorString()); |
| | | }); |
| | | string reserverString = reservoirStringBuilder.ToString(); |
| | |
| | | |
| | | Tanks.ForEach(o => |
| | | { |
| | | tankStringBuilder.AppendLine(o.ToString() + $"{o.Level}"); |
| | | tankStringBuilder.AppendLine(o.ToString());// + $"{o.Level}"); |
| | | coorStringBuilder.AppendLine(o.ToCoorString()); |
| | | }); |
| | | string tankString = tankStringBuilder.ToString(); |
| | |
| | | |
| | | Pipes.ForEach(p => |
| | | { |
| | | pipeStringBuilder.AppendLine(p.ToString() + $"{p.Level}"); |
| | | pipeStringBuilder.AppendLine(p.ToString());// + $"{p.Level}"); |
| | | statusStringBuilder.Append(p.ToStatusString()); |
| | | }); |
| | | |
| | |
| | | |
| | | Valves.ForEach(o => |
| | | { |
| | | valveStringBuilder.AppendLine(o.ToString() + $"{o.Level}"); |
| | | valveStringBuilder.AppendLine(o.ToString());// + $"{o.Level}"); |
| | | statusStringBuilder.Append(o.ToStatusString()); |
| | | }); |
| | | string valveString = valveStringBuilder.ToString(); |
| | |
| | | |
| | | Pumps.ForEach(o => |
| | | { |
| | | pumpStringBuilder.AppendLine(o.ToString() + $"{o.Level}"); |
| | | pumpStringBuilder.AppendLine(o.ToString());// + $"{o.Level}"); |
| | | statusStringBuilder.Append(o.ToStatusString()); |
| | | }); |
| | | string pumpString = pumpStringBuilder.ToString(); |