private static void ReadPassenger(XElement passengerSetElement) { EntityData.PassengerDict = new Dictionary <string, PassengerPlot.Passenger>(); foreach (XElement element in passengerSetElement.Elements("Passenger")) { Passenger pa = new PassengerPlot.Passenger() { ID = element.Attribute("ID").Value, Name = element.Attribute("Name").Value }; EntityData.PassengerDict.Add(pa.ID, pa); foreach (XElement eventElement in element.Element("EventList").Elements()) { PassengerEvent e = null; switch (eventElement.Name.LocalName) { case "PassengerPrivateTripEvent": PassengerPrivateTripEvent ept = new PassengerPrivateTripEvent() { Location = System.Windows.Point.Parse(eventElement.Attribute("Location").Value) }; pa.EventList.Add(ept); e = ept; break; case "PassengerActivityEvent": PassengerActivityEvent ea = new PassengerActivityEvent() { ActivityName = eventElement.Attribute("ActivityName").Value, Location = System.Windows.Point.Parse(eventElement.Attribute("Location").Value) }; pa.EventList.Add(ea); e = ea; break; case "PassengerTripEvent": PassengerTripEvent et = new PassengerTripEvent() { AttachedCarriage = EntityData.CarriageList[eventElement.Attribute("AttachedCarriageReferenceVehicleID").Value] }; pa.EventList.Add(et); e = et; break; default: break; } e.Time = Convert.ToInt32(eventElement.Attribute("Time").Value); e.Type = (PassengerEventTypes)Enum.Parse(typeof(PassengerEventTypes), eventElement.Attribute("Type").Value); e.TripType = (TripTypes)Enum.Parse(typeof(TripTypes), eventElement.Attribute("TripType").Value); } } }
private void AddPrivateTrip(Passenger passenger, PassengerEvent lastEvent, string lastStationName, PassengerEvent currentEvent, string currentStationName) { Point lastLocation; if (lastStationName == "-") { lastLocation = (lastEvent as PassengerActivityEvent).Location; } else { StopFacility lastF = StopFacilityNameDic[lastStationName]; lastLocation = lastF.LinkedStation.Location; } Point currentLocation; if (currentStationName == "-") { currentLocation = (currentEvent as PassengerActivityEvent).Location; } else { StopFacility currentF = StopFacilityNameDic[currentStationName]; currentLocation = currentF.LinkedStation.Location; } PassengerPrivateTripEvent e = new PassengerPrivateTripEvent() { Type = PassengerEventTypes.TripStart, Time = lastEvent.Time, Location = lastLocation }; passenger.EventList.Add(e); e = new PassengerPlot.PassengerPrivateTripEvent() { Type = PassengerEventTypes.TripEnd, Time = currentEvent.Time, Location = currentLocation }; passenger.EventList.Add(e); }