Exemplo n.º 1
0
 public PosFahrPlan(PosLinieStrecke strecke, OshFahrplanSequence sequence)
 {
     ObjectId = sequence.LX4610;
     //Name = sequence.LX4610.ToString();
     Strecke        = strecke;
     __haltestellen = new List <PosFahrPlanHalteStelle>();
     __Parse(sequence);
 }
Exemplo n.º 2
0
        private void __Parse(OshFahrplanSequence sequence)
        {
            var zl = Strecke.Items.Zip(sequence.Elements,
                                       (kn, el) => new Tuple <PosLineStreckeEinKnoten, OshFahrplanSequenceElement>(kn, el)).ToList();
            var el1 = zl.First();
            var fhs = new PosFahrPlanHalteStelle(this, 0, el1, 0)
            {
                Möglichkeiten = PosFahrgastMöglichkeiten.NurEingang
            };

            __haltestellen.Add(fhs);
            var index        = 0;
            var fahrZeit     = 0;
            var akumFahrZeit = 0;

            foreach (var el in zl.Skip(1))
            {
                fahrZeit += el.Item2.TRun;
                if (el.Item2.Status.In(new[]
                {
                    OshFahrplanElementType.NurAusgang, OshFahrplanElementType.NurEingang,
                    OshFahrplanElementType.RichtigeHaltestelle
                }))
                {
                    akumFahrZeit += fahrZeit;
                    fhs           = new PosFahrPlanHalteStelle(this, ++index, el, fahrZeit)
                    {
                        AkumZeitBis_InMinutes = akumFahrZeit
                    };
                    akumFahrZeit += el.Item2.TStop;
                    __haltestellen.Add(fhs);
                    fahrZeit = 0;
                }
            }

            //Ostani tylko wysiadają – poprawka
            fhs.Möglichkeiten     = PosFahrgastMöglichkeiten.NurAusgang;
            fhs.HaltZeitInMinutes = 0;
        }