Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
        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);
        }