From a187bcf97de6d043cb663dd973c83cc887665d3a Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Wed, 11 Feb 2026 16:10:03 +0100 Subject: feat: Update OpenTelemetry package versions and enhance route color handling in OtpService Closes #132 --- Directory.Packages.props | 8 +++---- src/Enmarcha.Backend/Services/OtpService.cs | 33 +++++++++++++++++++++++++---- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 9bf5796..3ded0a5 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -21,9 +21,9 @@ - - - - + + + + diff --git a/src/Enmarcha.Backend/Services/OtpService.cs b/src/Enmarcha.Backend/Services/OtpService.cs index 1484583..07c4d81 100644 --- a/src/Enmarcha.Backend/Services/OtpService.cs +++ b/src/Enmarcha.Backend/Services/OtpService.cs @@ -35,13 +35,25 @@ public class OtpService public RouteDto MapRoute(RoutesListResponse.RouteItem route) { var feedId = route.GtfsId.Split(':')[0]; + var color = route.Color; + if (!string.IsNullOrWhiteSpace(color)) + { + if (!color.StartsWith("#")) color = "#" + color; + } + + if (string.IsNullOrWhiteSpace(color) || color.Length != 7) + { + (color, _) = _feedService.GetFallbackColourForFeed(feedId); + } + + var textColor = ContrastHelper.GetBestTextColour(color.TrimStart('#')); return new RouteDto { Id = route.GtfsId, ShortName = _feedService.NormalizeRouteShortName(feedId, route.ShortName ?? string.Empty), LongName = route.LongName, - Color = route.Color, - TextColor = route.TextColor, + Color = color, + TextColor = textColor, SortOrder = route.SortOrder, AgencyName = route.Agency?.Name, TripCount = route.Patterns.Sum(p => p.TripsForDate.Count) @@ -51,12 +63,25 @@ public class OtpService public RouteDetailsDto MapRouteDetails(RouteDetailsResponse.RouteItem route) { var feedId = route.GtfsId?.Split(':')[0] ?? "unknown"; + var color = route.Color; + if (!string.IsNullOrWhiteSpace(color)) + { + if (!color.StartsWith("#")) color = "#" + color; + } + + if (string.IsNullOrWhiteSpace(color) || color.Length != 7) + { + (color, _) = _feedService.GetFallbackColourForFeed(feedId); + } + + var textColor = ContrastHelper.GetBestTextColour(color.TrimStart('#')); + return new RouteDetailsDto { ShortName = _feedService.NormalizeRouteShortName(feedId, route.ShortName ?? string.Empty), LongName = route.LongName, - Color = route.Color, - TextColor = route.TextColor, + Color = color, + TextColor = textColor, AgencyName = route.Agency?.Name, Patterns = route.Patterns.Select(p => MapPattern(p, feedId)).ToList() }; -- cgit v1.3