From 6ebe2deb52c12e16e33ccec1102a46b2ebc0738b Mon Sep 17 00:00:00 2001 From: Kenton Royal Date: Sun, 26 Aug 2018 00:43:18 +0100 Subject: [PATCH] Add logic for retriving request information --- src/Ombi.Core/Engine/TvRequestEngine.cs | 29 ++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/Ombi.Core/Engine/TvRequestEngine.cs b/src/Ombi.Core/Engine/TvRequestEngine.cs index 80e627ade..da61b018a 100644 --- a/src/Ombi.Core/Engine/TvRequestEngine.cs +++ b/src/Ombi.Core/Engine/TvRequestEngine.cs @@ -616,12 +616,35 @@ namespace Ombi.Core.Engine public async Task GetRemainingRequests() { + OmbiUser user = await GetUser(); + int limit = user.EpisodeRequestLimit ?? 0; + + if (limit <= 0) + { + return new RequestQuotaCountModel() + { + HasLimit = false, + Limit = 0, + Remaining = 0, + NextRequest = DateTime.Now, + }; + } + + IQueryable log = _requestLog.GetAll().Where(x => x.UserId == user.Id && x.RequestType == RequestType.TvShow); + + int count = limit - await log.CountAsync(x => x.RequestDate >= DateTime.UtcNow.AddDays(-7)); + + DateTime oldestRequestedAt = await log.Where(x => x.RequestDate >= DateTime.UtcNow.AddDays(-7)) + .OrderBy(x => x.RequestDate) + .Select(x => x.RequestDate) + .FirstOrDefaultAsync(); + return new RequestQuotaCountModel() { HasLimit = true, - Limit = 5, - Remaining = 4, - NextRequest = DateTime.Parse("2018-08-30T00:00:00+01"), + Limit = limit, + Remaining = count, + NextRequest = oldestRequestedAt.AddDays(7), }; } }