public RealTimeInfoTO Get(VehicleAllocation allocation)
        {
            var result = GetRealtimeInfo(
                eventCode: RealtimeInfoConstants.EventCodeAllocation,
                classifier: RealtimeInfoConstants.ClassifierActual,
                tripNumber: allocation.Zugnummer,
                timeStamp: sessionStart,
                stopArea: allocation.Betriebsstelle,
                track: allocation.Gleis,
                vehicles: allocation.Fahrzeuge);

            return(result);
        }
Beispiel #2
0
        private IEnumerable <VehicleAllocation> GetVehicleAllocations(IEnumerable <Aufstellung> aufstellungen)
        {
            if (aufstellungen.Any())
            {
                var aufstellungenGroups = aufstellungen
                                          .GroupBy(a => new
                {
                    a.Feld.Betriebsstelle,
                    a.Feld.Gleis,
                    a.Decoder,
                    a.Zugnummer
                }).ToArray();

                logger.LogDebug(
                    "Es wurden {numberTrains} Züge in der Grundaufstellungen gefunden.",
                    aufstellungenGroups.Count());

                foreach (var aufstellungenGroup in aufstellungenGroups)
                {
                    var relevantAufstellung = aufstellungenGroup.First();

                    var fahrzeuge = relevantAufstellung.Decoder.ToString().AsEnumerable();

                    var result = new VehicleAllocation
                    {
                        Betriebsstelle = relevantAufstellung.Feld?.Betriebsstelle,
                        Fahrzeuge      = fahrzeuge,
                        Gleis          = relevantAufstellung.Feld?.Gleis.ToString(),
                        Zugnummer      = relevantAufstellung.Zugnummer?.ToString(),
                    };

                    logger.LogDebug(
                        "Zug in Grundaufstellung: {train}",
                        relevantAufstellung);

                    yield return(result);
                }
            }
            else
            {
                logger.LogInformation(
                    "In der Grundaufstellung sind keine Fahrzeuge eingetragen.");
            }
        }