From 0e46e66a6d50400e03c409d292de2ba8027923b6 Mon Sep 17 00:00:00 2001 From: Kenton Royal Date: Sun, 26 Aug 2018 00:50:05 +0100 Subject: [PATCH] Add logic for movie request count --- src/Ombi.Core/Engine/MovieRequestEngine.cs | 31 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/Ombi.Core/Engine/MovieRequestEngine.cs b/src/Ombi.Core/Engine/MovieRequestEngine.cs index d40c3e7b8..5cea34627 100644 --- a/src/Ombi.Core/Engine/MovieRequestEngine.cs +++ b/src/Ombi.Core/Engine/MovieRequestEngine.cs @@ -487,12 +487,35 @@ namespace Ombi.Core.Engine public async Task GetRemainingRequests() { + OmbiUser user = await GetUser(); + int limit = user.MovieRequestLimit ?? 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.Movie); + + 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 = false, - Limit = 5, - Remaining = 4, - NextRequest = DateTime.Parse("2018-08-27T00:00:00+01"), + HasLimit = true, + Limit = limit, + Remaining = count, + NextRequest = oldestRequestedAt.AddDays(7), }; } }