diff options
Diffstat (limited to 'src/Costasdev.Busurbano.Backend/Services/OtpService.cs')
| -rw-r--r-- | src/Costasdev.Busurbano.Backend/Services/OtpService.cs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/Costasdev.Busurbano.Backend/Services/OtpService.cs b/src/Costasdev.Busurbano.Backend/Services/OtpService.cs index 82c43e0..87895d3 100644 --- a/src/Costasdev.Busurbano.Backend/Services/OtpService.cs +++ b/src/Costasdev.Busurbano.Backend/Services/OtpService.cs @@ -161,13 +161,24 @@ public class OtpService int cardTicketsRequired = 0; DateTime? lastTicketPurchased = null; + int tripsPaidWithTicket = 0; foreach (var leg in busLegs) { - if (lastTicketPurchased == null || (leg.StartTime - lastTicketPurchased.Value).TotalMinutes > 45) + // If no ticket purchased, ticket expired (no free transfers after 45 mins), or max trips with ticket reached + if ( + lastTicketPurchased == null || + (leg.StartTime - lastTicketPurchased.Value).TotalMinutes > 45 || + tripsPaidWithTicket >= 3 + ) { cardTicketsRequired++; lastTicketPurchased = leg.StartTime; + tripsPaidWithTicket = 1; + } + else + { + tripsPaidWithTicket++; } } |
