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); }
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."); } }