From 7d4c6ab16c33b94ed0389f573c61b78a4adb4b9f Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 12 May 2025 22:19:22 -0400 Subject: [PATCH] fix incorrect requests ahead reported from queue --- AccessQueueService/Data/DictionaryAccessQueueRepo.cs | 2 +- AccessQueueService/Data/IAccessQueueRepo.cs | 2 +- AccessQueueService/Services/AccessService.cs | 7 +++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/AccessQueueService/Data/DictionaryAccessQueueRepo.cs b/AccessQueueService/Data/DictionaryAccessQueueRepo.cs index 81ba259..fc92f43 100644 --- a/AccessQueueService/Data/DictionaryAccessQueueRepo.cs +++ b/AccessQueueService/Data/DictionaryAccessQueueRepo.cs @@ -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) diff --git a/AccessQueueService/Data/IAccessQueueRepo.cs b/AccessQueueService/Data/IAccessQueueRepo.cs index f13572a..9d83a6c 100644 --- a/AccessQueueService/Data/IAccessQueueRepo.cs +++ b/AccessQueueService/Data/IAccessQueueRepo.cs @@ -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); diff --git a/AccessQueueService/Services/AccessService.cs b/AccessQueueService/Services/AccessService.cs index 7c0a396..fa22445 100644 --- a/AccessQueueService/Services/AccessService.cs +++ b/AccessQueueService/Services/AccessService.cs @@ -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 }; } }