ShiftScheduler/Services/TransportConnectionCalculator.cs
2025-08-23 19:16:40 +02:00

36 lines
No EOL
1.1 KiB
C#

using ShiftScheduler.Shared;
namespace ShiftScheduler.Services;
public static class TransportConnectionCalculator
{
public static TransportConnection? FindBestConnection(IReadOnlyList<TransportConnection> connections, DateTime latestArrivalTime)
{
var validConnections = new List<TransportConnection>();
foreach (var connection in connections)
{
if (DateTime.TryParse(connection.ArrivalTime, out var arrivalTime))
{
if (arrivalTime <= latestArrivalTime)
{
validConnections.Add(connection);
}
}
}
if (validConnections.Count > 0)
{
var sortedValid = validConnections
.OrderBy(c => DateTime.Parse(c.ArrivalTime ?? "00:00"))
.ToList();
return sortedValid.Last();
}
// If no valid connections, return the earliest available
return connections
.OrderBy(c => DateTime.Parse(c.ArrivalTime ?? "23:59"))
.FirstOrDefault();
}
}