diff options
Diffstat (limited to 'src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs')
| -rw-r--r-- | src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs b/src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs new file mode 100644 index 0000000..5caf9fc --- /dev/null +++ b/src/Enmarcha.Backend/Helpers/TransitKindClassifier.cs @@ -0,0 +1,38 @@ +using System.Text.Json.Serialization; + +namespace Enmarcha.Backend.Helpers; + +public class TransitKindClassifier +{ + public static TransitKind KindByFeed(string feedId) + { + return feedId switch + { + "vitrasa" or "tussa" or "tranvias" or "shuttle" or "ourense" => TransitKind.Bus, + "xunta" => TransitKind.Coach, + "renfe" or "feve" => TransitKind.Train, + _ => TransitKind.Unknown + }; + } + + public static string StringByFeed(string feedId) + { + var kind = KindByFeed(feedId); + return kind switch + { + TransitKind.Bus => "bus", + TransitKind.Coach => "coach", + TransitKind.Train => "train", + TransitKind.Unknown => "unknown", + _ => throw new ArgumentOutOfRangeException(nameof(kind), kind, null) + }; + } +} + +public enum TransitKind +{ + [JsonStringEnumMemberName("bus")] Bus, + [JsonStringEnumMemberName("coach")] Coach, + [JsonStringEnumMemberName("train")] Train, + [JsonStringEnumMemberName("unknown")] Unknown +} |
