aboutsummaryrefslogtreecommitdiff
path: root/Enmarcha.Sources.CtagShuttle
diff options
context:
space:
mode:
Diffstat (limited to 'Enmarcha.Sources.CtagShuttle')
-rw-r--r--Enmarcha.Sources.CtagShuttle/CtagShuttleRealtimeEstimatesProvider.cs30
-rw-r--r--Enmarcha.Sources.CtagShuttle/Enmarcha.Sources.CtagShuttle.csproj9
-rw-r--r--Enmarcha.Sources.CtagShuttle/Status.cs46
3 files changed, 0 insertions, 85 deletions
diff --git a/Enmarcha.Sources.CtagShuttle/CtagShuttleRealtimeEstimatesProvider.cs b/Enmarcha.Sources.CtagShuttle/CtagShuttleRealtimeEstimatesProvider.cs
deleted file mode 100644
index 3ec0c6f..0000000
--- a/Enmarcha.Sources.CtagShuttle/CtagShuttleRealtimeEstimatesProvider.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System.Net.Http.Json;
-
-namespace Enmarcha.Sources.CtagShuttle;
-
-public class CtagShuttleRealtimeEstimatesProvider
-{
- private HttpClient _http;
-
- public CtagShuttleRealtimeEstimatesProvider(HttpClient http)
- {
- _http = http;
- }
-
- public async Task<CtagShuttleStatus> GetShuttleStatus()
- {
- const string url = "https://shuttle.brain4mobility.com/status";
-
- var response = await _http.GetAsync(url);
- var status = await response.Content.ReadFromJsonAsync<CtagShuttleStatus>();
-
- if (status is null)
- {
- throw new InvalidOperationException("Failed to retrieve shuttle status");
- }
-
- return status;
- }
-
-}
-
diff --git a/Enmarcha.Sources.CtagShuttle/Enmarcha.Sources.CtagShuttle.csproj b/Enmarcha.Sources.CtagShuttle/Enmarcha.Sources.CtagShuttle.csproj
deleted file mode 100644
index 237d661..0000000
--- a/Enmarcha.Sources.CtagShuttle/Enmarcha.Sources.CtagShuttle.csproj
+++ /dev/null
@@ -1,9 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
- <PropertyGroup>
- <TargetFramework>net10.0</TargetFramework>
- <ImplicitUsings>enable</ImplicitUsings>
- <Nullable>enable</Nullable>
- </PropertyGroup>
-
-</Project>
diff --git a/Enmarcha.Sources.CtagShuttle/Status.cs b/Enmarcha.Sources.CtagShuttle/Status.cs
deleted file mode 100644
index ecf2da1..0000000
--- a/Enmarcha.Sources.CtagShuttle/Status.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System.Text.Json.Serialization;
-
-namespace Enmarcha.Sources.CtagShuttle;
-
-public class CtagShuttleStatus
-{
- [JsonPropertyName("status")] public required string StatusValue { get; set; }
- [JsonPropertyName("lat")] public double Latitude { get; set; }
- [JsonPropertyName("lng")] public double Longitude { get; set; }
- [JsonPropertyName("last_position_at")] public required string LastPositionAtValue { get; set; }
- [JsonPropertyName("free_seats")] public int FreeSeats { get; set; }
-
- [JsonPropertyName("last_occupancy_at")]
- public required string LastOccupancyAtValue { get; set; }
-
- [JsonIgnore]
- public Status Status => Status.Parse(StatusValue);
-
- [JsonIgnore]
- public DateTime LastPositionAt => DateTime.Parse(LastPositionAtValue);
-
- [JsonIgnore]
- public DateTime LastOccupancyAt => DateTime.Parse(LastOccupancyAtValue);
-}
-
-public enum Status
-{
- Idle,
- Operating
-}
-
-public static class StatusExtensions
-{
- extension(Status)
- {
- public static Status Parse(string value)
- {
- return value switch
- {
- "idle" => Status.Idle,
- "operating" => Status.Operating,
- _ => throw new ArgumentException($"Invalid status value: {value}")
- };
- }
- }
-}