Remove sections from transport model

This commit is contained in:
Claudio Schaad 2025-09-03 20:35:04 +02:00
parent 385e9f90fe
commit cc81cacda8
5 changed files with 1 additions and 79 deletions

View file

@ -71,12 +71,6 @@ namespace ShiftScheduler.Services
var departure = DateTime.TryParse(transport.DepartureTime, out var dep) ? dep.ToString("HH:mm") : transport.DepartureTime;
var arrival = DateTime.TryParse(transport.ArrivalTime, out var arr) ? arr.ToString("HH:mm") : transport.ArrivalTime;
var mainJourney = transport.Sections?.FirstOrDefault()?.Journey;
if (mainJourney != null)
{
return $"{mainJourney.Category} {mainJourney.Number}: {departure} → {arrival}";
}
return $"{departure} → {arrival}";
}
}

View file

@ -51,37 +51,6 @@ namespace ShiftScheduler.Services
ArrivalTime = apiConnection.To?.Arrival ?? string.Empty,
Duration = apiConnection.Duration,
Platform = apiConnection.From?.Platform ?? string.Empty,
Sections = apiConnection.Sections.Select(s => new TransportSection
{
Journey = s.Journey != null ? new TransportJourney
{
Name = s.Journey.Name,
Category = s.Journey.Category,
Number = s.Journey.Number
} : null,
Departure = s.Departure != null ? new TransportCheckpoint
{
Station = s.Departure.Station != null ? new TransportStation
{
Name = s.Departure.Station.Name,
Id = s.Departure.Station.Id
} : null,
Departure = s.Departure.Departure,
Arrival = s.Departure.Arrival,
Platform = s.Departure.Platform
} : null,
Arrival = s.Arrival != null ? new TransportCheckpoint
{
Station = s.Arrival.Station != null ? new TransportStation
{
Name = s.Arrival.Station.Name,
Id = s.Arrival.Station.Id
} : null,
Departure = s.Arrival.Departure,
Arrival = s.Arrival.Arrival,
Platform = s.Arrival.Platform
} : null
}).ToList()
};
}
}

View file

@ -1,6 +1,5 @@
namespace ShiftScheduler.Shared
{
// View model that combines shift information with transport data for a specific date
public record ShiftWithTransport
{
public DateTime Date { get; init; }
@ -24,11 +23,7 @@ namespace ShiftScheduler.Shared
var departure = DateTime.TryParse(connection.DepartureTime, out var dep) ? dep.ToString("HH:mm") : connection.DepartureTime;
var arrival = DateTime.TryParse(connection.ArrivalTime, out var arr) ? arr.ToString("HH:mm") : connection.ArrivalTime;
var mainJourney = connection.Sections?.FirstOrDefault()?.Journey;
var trainInfo = mainJourney != null ? $"{mainJourney.Category}{mainJourney.Number}" : "Train";
return $"{trainInfo} {departure}→{arrival}";
return $"{departure}→{arrival}";
}
}
}

View file

@ -27,39 +27,10 @@ namespace ShiftScheduler.Shared
public string ArrivalTime { get; set; } = string.Empty;
public string Duration { get; set; } = string.Empty;
public string? Platform { get; set; } = string.Empty;
public List<TransportSection> Sections { get; set; } = new();
public override string ToString()
{
return $"{Platform}: {DepartureTime} - {ArrivalTime} ({Duration})";
}
}
public class TransportSection
{
public TransportJourney? Journey { get; set; }
public TransportCheckpoint? Departure { get; set; }
public TransportCheckpoint? Arrival { get; set; }
}
public class TransportJourney
{
public string Name { get; set; } = string.Empty;
public string Category { get; set; } = string.Empty;
public string Number { get; set; } = string.Empty;
}
public class TransportCheckpoint
{
public TransportStation? Station { get; set; }
public string? Departure { get; set; } = string.Empty;
public string? Arrival { get; set; } = string.Empty;
public string? Platform { get; set; } = string.Empty;
}
public class TransportStation
{
public string Name { get; set; } = string.Empty;
public string Id { get; set; } = string.Empty;
}
}

View file

@ -62,13 +62,6 @@ public class TransportApiServiceTests
result.ArrivalTime.ShouldBe("2023-12-15T07:30:00");
result.Duration.ShouldBe("00:45:00");
result.Platform.ShouldBe("5");
result.Sections.ShouldNotBeEmpty();
result.Sections.Count.ShouldBe(1);
var section = result.Sections.First();
section.Journey?.Name.ShouldBe("IC 1");
section.Journey?.Category.ShouldBe("IC");
section.Journey?.Number.ShouldBe("1");
}
[Fact]