diff options
Diffstat (limited to 'Enmarcha.Sources.CtagShuttle')
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}") - }; - } - } -} |
