From 6aa9d8d318d1540caac8becaabfe0ef95ff96b17 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 12:08:03 +0000 Subject: Fix UTC timestamp parsing issue in CtagShuttle causing 60-minute offset Co-authored-by: arielcostas <94913521+arielcostas@users.noreply.github.com> --- .../Services/Processors/CtagShuttleRealTimeProcessor.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/Enmarcha.Backend/Services') diff --git a/src/Enmarcha.Backend/Services/Processors/CtagShuttleRealTimeProcessor.cs b/src/Enmarcha.Backend/Services/Processors/CtagShuttleRealTimeProcessor.cs index 593ac86..570059b 100644 --- a/src/Enmarcha.Backend/Services/Processors/CtagShuttleRealTimeProcessor.cs +++ b/src/Enmarcha.Backend/Services/Processors/CtagShuttleRealTimeProcessor.cs @@ -42,7 +42,10 @@ public class CtagShuttleRealTimeProcessor : AbstractRealTimeProcessor System.Diagnostics.Activity.Current?.SetTag("shuttle.status", status.StatusValue); // Validate position timestamp - skip if data is stale (>3 minutes old) - var positionAge = (context.NowLocal - status.LastPositionAt).TotalMinutes; + // Convert UTC timestamp to Madrid time for comparison + var madridTz = TimeZoneInfo.FindSystemTimeZoneById("Europe/Madrid"); + var lastPositionMadrid = TimeZoneInfo.ConvertTimeFromUtc(status.LastPositionAt, madridTz); + var positionAge = (context.NowLocal - lastPositionMadrid).TotalMinutes; if (positionAge > MaxPositionAgeMinutes) { _logger.LogInformation( -- cgit v1.3