fix incorrect requests ahead reported from queue

This commit is contained in:
henry 2025-05-12 22:19:22 -04:00
parent 449b821633
commit 7d4c6ab16c
3 changed files with 5 additions and 6 deletions

View File

@ -12,7 +12,7 @@ namespace AccessQueueService.Data
public int GetActiveTicketsCount(DateTime activeCutoff) => _accessTickets
.Count(t => t.Value.ExpiresOn > DateTime.UtcNow && t.Value.LastActive >activeCutoff);
public int GetQueueCount() => _accessQueue.Count;
public int IndexOfTicket(Guid userId)
public int GetRequestsAhead(Guid userId)
{
var index = 0;
foreach (var ticket in _accessQueue)

View File

@ -10,7 +10,7 @@ namespace AccessQueueService.Data
public int GetQueueCount();
public AccessTicket? GetTicket(Guid userId);
public void UpsertTicket(AccessTicket ticket);
public int IndexOfTicket(Guid userId);
public int GetRequestsAhead(Guid userId);
public void Enqueue(AccessTicket ticket);
public int DeleteExpiredTickets();
public bool RemoveUser(Guid userId);

View File

@ -68,9 +68,8 @@ namespace AccessQueueService.Services
}
else
{
var indexOfTicket = _accessQueueRepo.IndexOfTicket(userId);
var requestsAhead = _accessQueueRepo.GetQueueCount() - indexOfTicket - 1;
if (indexOfTicket == -1)
var requestsAhead = _accessQueueRepo.GetRequestsAhead(userId);
if (requestsAhead == -1)
{
_accessQueueRepo.Enqueue(new AccessTicket
{
@ -82,7 +81,7 @@ namespace AccessQueueService.Services
return new AccessResponse
{
ExpiresOn = null,
RequestsAhead = requestsAhead
RequestsAhead = _accessQueueRepo.GetQueueCount() - 1
};
}
}