From f4858fa316db7e11dbf0e20c5fe5b47710662339 Mon Sep 17 00:00:00 2001 From: Timothy Van Ruitenbeek <> Date: Sun, 17 Jan 2016 23:12:04 -0800 Subject: [PATCH] Create a new circuit to use when the circuit length doesn't match a known circuit. --- F1Speed.Core/Repositories/CircuitRepository.cs | 7 ++++++- .../Repositories/F1PerfViewTelemetryLapRepository.cs | 4 +--- 2 files changed, 7 insertions(+), 4 deletions(-) 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)