aboutsummaryrefslogtreecommitdiff
path: root/src/Enmarcha.Backend/Services/OtpService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Enmarcha.Backend/Services/OtpService.cs')
-rw-r--r--src/Enmarcha.Backend/Services/OtpService.cs18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/Enmarcha.Backend/Services/OtpService.cs b/src/Enmarcha.Backend/Services/OtpService.cs
index 07c4d81..a01079f 100644
--- a/src/Enmarcha.Backend/Services/OtpService.cs
+++ b/src/Enmarcha.Backend/Services/OtpService.cs
@@ -303,6 +303,8 @@ public class OtpService
var shortName = _feedService.NormalizeRouteShortName(feedId, leg.Route?.ShortName ?? string.Empty);
var headsign = leg.Headsign;
+ var headsignTrimmed = headsign?.Trim();
+
if (feedId == "vitrasa")
{
headsign = headsign?.Replace("*", "");
@@ -313,9 +315,21 @@ public class OtpService
switch (shortName)
{
- case "A" when headsign != null && headsign.StartsWith("\"1\""):
+ case "A" when headsignTrimmed != null &&
+ (headsignTrimmed.StartsWith("\"1\"", StringComparison.Ordinal) ||
+ (headsignTrimmed.Length >= 1 && headsignTrimmed[0] == '1' &&
+ (headsignTrimmed.Length == 1 || !char.IsDigit(headsignTrimmed[1])))):
shortName = "A1";
- headsign = headsign.Replace("\"1\"", "");
+ if (headsignTrimmed.StartsWith("\"1\"", StringComparison.Ordinal))
+ {
+ headsign = headsignTrimmed[3..];
+ }
+ else
+ {
+ headsign = headsignTrimmed[1..];
+ }
+
+ headsign = headsign.TrimStart(' ', '-', '.', ':');
break;
case "6":
headsign = headsign?.Replace("\"", "");