diff --git a/F1Speed.Core/Repositories/CircuitRepository.cs b/F1Speed.Core/Repositories/CircuitRepository.cs index 5edd413..b47a9a3 100644 --- a/F1Speed.Core/Repositories/CircuitRepository.cs +++ b/F1Speed.Core/Repositories/CircuitRepository.cs @@ -41,7 +41,12 @@ public static Circuit GetByTrackLength(float trackLength) Circuit matchedCircuit; try { - matchedCircuit = _circuits.Single(x => Math.Abs(x.TrackLength - trackLength) < 0.002f); + matchedCircuit = _circuits.OrderBy(x => Math.Abs(x.TrackLength - trackLength)).First(); + if (Math.Abs(matchedCircuit.TrackLength - trackLength) > 1.0f) + { + matchedCircuit = new Circuit() { Name = trackLength.ToString("#m"), TrackLength = trackLength, Order = _circuits.Count, Filename = trackLength.ToString("Unknown (#m)") }; + _circuits.Add(matchedCircuit); + } } catch (InvalidOperationException) { diff --git a/F1Speed.Core/Repositories/F1PerfViewTelemetryLapRepository.cs b/F1Speed.Core/Repositories/F1PerfViewTelemetryLapRepository.cs index 0d0e75e..3ba0292 100644 --- a/F1Speed.Core/Repositories/F1PerfViewTelemetryLapRepository.cs +++ b/F1Speed.Core/Repositories/F1PerfViewTelemetryLapRepository.cs @@ -22,8 +22,6 @@ public F1PerfViewTelemetryLapRepository(IFileSystemFacade fileSystemFacade) fileSystem = fileSystemFacade; } - public static IDictionary Tracks = CircuitRepository.GetAll().ToDictionary(x => x.Name, x => x.Order.ToString()); - public void Save(TelemetryLap lap) { try @@ -92,7 +90,7 @@ private string FileName(TelemetryLap lap) private string GetTrackNumber(TelemetryLap lap) { - return Tracks[lap.CircuitName]; + return lap.Circuit.Order.ToString(); } private IEnumerable GetPacketData(TelemetryLap lap)