mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-19 12:59:39 -07:00
test(request-limits): ✅ Fixed unit tests
This commit is contained in:
parent
52d236a4f4
commit
46e2fafc46
4 changed files with 43 additions and 33 deletions
|
@ -370,7 +370,7 @@ namespace Ombi.Core.Tests.Engine
|
||||||
var repoMock = _mocker.GetMock<IRepository<RequestLog>>();
|
var repoMock = _mocker.GetMock<IRepository<RequestLog>>();
|
||||||
repoMock.Setup(x => x.GetAll()).Returns(log.AsQueryable().BuildMock().Object);
|
repoMock.Setup(x => x.GetAll()).Returns(log.AsQueryable().BuildMock().Object);
|
||||||
|
|
||||||
var result = await _subject.GetRemainingMovieRequests(user);
|
var result = await _subject.GetRemainingMovieRequests(user, today);
|
||||||
|
|
||||||
Assert.That(result, Is.InstanceOf<RequestQuotaCountModel>()
|
Assert.That(result, Is.InstanceOf<RequestQuotaCountModel>()
|
||||||
.With.Property(nameof(RequestQuotaCountModel.HasLimit)).EqualTo(true)
|
.With.Property(nameof(RequestQuotaCountModel.HasLimit)).EqualTo(true)
|
||||||
|
@ -409,7 +409,7 @@ namespace Ombi.Core.Tests.Engine
|
||||||
var repoMock = _mocker.GetMock<IRepository<RequestLog>>();
|
var repoMock = _mocker.GetMock<IRepository<RequestLog>>();
|
||||||
repoMock.Setup(x => x.GetAll()).Returns(log.AsQueryable().BuildMock().Object);
|
repoMock.Setup(x => x.GetAll()).Returns(log.AsQueryable().BuildMock().Object);
|
||||||
|
|
||||||
var result = await _subject.GetRemainingMovieRequests(user);
|
var result = await _subject.GetRemainingMovieRequests(user, today);
|
||||||
|
|
||||||
Assert.That(result, Is.InstanceOf<RequestQuotaCountModel>()
|
Assert.That(result, Is.InstanceOf<RequestQuotaCountModel>()
|
||||||
.With.Property(nameof(RequestQuotaCountModel.HasLimit)).EqualTo(true)
|
.With.Property(nameof(RequestQuotaCountModel.HasLimit)).EqualTo(true)
|
||||||
|
|
|
@ -370,7 +370,7 @@ namespace Ombi.Core.Tests.Engine
|
||||||
var repoMock = _mocker.GetMock<IRepository<RequestLog>>();
|
var repoMock = _mocker.GetMock<IRepository<RequestLog>>();
|
||||||
repoMock.Setup(x => x.GetAll()).Returns(log.AsQueryable().BuildMock().Object);
|
repoMock.Setup(x => x.GetAll()).Returns(log.AsQueryable().BuildMock().Object);
|
||||||
|
|
||||||
var result = await _subject.GetRemainingMusicRequests(user);
|
var result = await _subject.GetRemainingMusicRequests(user, today);
|
||||||
|
|
||||||
Assert.That(result, Is.InstanceOf<RequestQuotaCountModel>()
|
Assert.That(result, Is.InstanceOf<RequestQuotaCountModel>()
|
||||||
.With.Property(nameof(RequestQuotaCountModel.HasLimit)).EqualTo(true)
|
.With.Property(nameof(RequestQuotaCountModel.HasLimit)).EqualTo(true)
|
||||||
|
|
|
@ -32,7 +32,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task MovieRule_No_Limit()
|
public async Task MovieRule_No_Limit()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingMovieRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingMovieRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = false
|
HasLimit = false
|
||||||
});
|
});
|
||||||
|
@ -49,7 +49,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task MovieRule_Limit_NotReached()
|
public async Task MovieRule_Limit_NotReached()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingMovieRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingMovieRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = true,
|
HasLimit = true,
|
||||||
Limit = 2,
|
Limit = 2,
|
||||||
|
@ -69,7 +69,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task MovieRule_Limit_Reached()
|
public async Task MovieRule_Limit_Reached()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingMovieRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingMovieRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = true,
|
HasLimit = true,
|
||||||
Limit = 1,
|
Limit = 1,
|
||||||
|
@ -87,7 +87,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task MusicRule_No_Limit()
|
public async Task MusicRule_No_Limit()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingMusicRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingMusicRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = false
|
HasLimit = false
|
||||||
});
|
});
|
||||||
|
@ -104,7 +104,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task MusicRule_Limit_NotReached()
|
public async Task MusicRule_Limit_NotReached()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingMusicRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingMusicRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = true,
|
HasLimit = true,
|
||||||
Limit = 2,
|
Limit = 2,
|
||||||
|
@ -124,7 +124,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task MusicRule_Limit_Reached()
|
public async Task MusicRule_Limit_Reached()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingMusicRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingMusicRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = true,
|
HasLimit = true,
|
||||||
Limit = 1,
|
Limit = 1,
|
||||||
|
@ -143,7 +143,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task TvRule_No_Limit()
|
public async Task TvRule_No_Limit()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingTvRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingTvRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = false
|
HasLimit = false
|
||||||
});
|
});
|
||||||
|
@ -160,7 +160,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task TvRule_Limit_NotReached()
|
public async Task TvRule_Limit_NotReached()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingTvRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingTvRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = true,
|
HasLimit = true,
|
||||||
Limit = 2,
|
Limit = 2,
|
||||||
|
@ -190,7 +190,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task TvRule_Limit_Reached()
|
public async Task TvRule_Limit_Reached()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingTvRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingTvRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = true,
|
HasLimit = true,
|
||||||
Limit = 1,
|
Limit = 1,
|
||||||
|
@ -219,7 +219,7 @@ namespace Ombi.Core.Tests.Rule.Request
|
||||||
public async Task TvRule_Limit_Reached_ManyEpisodes()
|
public async Task TvRule_Limit_Reached_ManyEpisodes()
|
||||||
{
|
{
|
||||||
var limitService = _mocker.GetMock<IRequestLimitService>();
|
var limitService = _mocker.GetMock<IRequestLimitService>();
|
||||||
limitService.Setup(x => x.GetRemainingTvRequests(It.IsAny<OmbiUser>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
limitService.Setup(x => x.GetRemainingTvRequests(It.IsAny<OmbiUser>(), It.IsAny<DateTime>())).ReturnsAsync(new Models.RequestQuotaCountModel
|
||||||
{
|
{
|
||||||
HasLimit = true,
|
HasLimit = true,
|
||||||
Limit = 1,
|
Limit = 1,
|
||||||
|
|
|
@ -14,9 +14,9 @@ namespace Ombi.Core.Services
|
||||||
{
|
{
|
||||||
public interface IRequestLimitService
|
public interface IRequestLimitService
|
||||||
{
|
{
|
||||||
Task<RequestQuotaCountModel> GetRemainingMovieRequests(OmbiUser user = default);
|
Task<RequestQuotaCountModel> GetRemainingMovieRequests(OmbiUser user = default, DateTime now = default);
|
||||||
Task<RequestQuotaCountModel> GetRemainingTvRequests(OmbiUser user = default);
|
Task<RequestQuotaCountModel> GetRemainingTvRequests(OmbiUser user = default, DateTime now = default);
|
||||||
Task<RequestQuotaCountModel> GetRemainingMusicRequests(OmbiUser user = default);
|
Task<RequestQuotaCountModel> GetRemainingMusicRequests(OmbiUser user = default, DateTime now = default);
|
||||||
}
|
}
|
||||||
public class RequestLimitService : IRequestLimitService
|
public class RequestLimitService : IRequestLimitService
|
||||||
{
|
{
|
||||||
|
@ -31,8 +31,12 @@ namespace Ombi.Core.Services
|
||||||
_requestLog = rl;
|
_requestLog = rl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<RequestQuotaCountModel> GetRemainingMovieRequests(OmbiUser user)
|
public async Task<RequestQuotaCountModel> GetRemainingMovieRequests(OmbiUser user, DateTime now = default)
|
||||||
{
|
{
|
||||||
|
if (now == default)
|
||||||
|
{
|
||||||
|
now = DateTime.UtcNow;
|
||||||
|
}
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
user = await GetUser();
|
user = await GetUser();
|
||||||
|
@ -78,11 +82,15 @@ namespace Ombi.Core.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return await CalculateBasicRemaingRequests(user, limit, user.MovieRequestLimitType ?? RequestLimitType.Day, log);
|
return await CalculateBasicRemaingRequests(user, limit, user.MovieRequestLimitType ?? RequestLimitType.Day, log, now);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<RequestQuotaCountModel> GetRemainingMusicRequests(OmbiUser user)
|
public async Task<RequestQuotaCountModel> GetRemainingMusicRequests(OmbiUser user, DateTime now = default)
|
||||||
{
|
{
|
||||||
|
if (now == default)
|
||||||
|
{
|
||||||
|
now = DateTime.UtcNow;
|
||||||
|
}
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
user = await GetUser();
|
user = await GetUser();
|
||||||
|
@ -128,7 +136,7 @@ namespace Ombi.Core.Services
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return await CalculateBasicRemaingRequests(user, limit, user.MusicRequestLimitType ?? RequestLimitType.Day, log);
|
return await CalculateBasicRemaingRequests(user, limit, user.MusicRequestLimitType ?? RequestLimitType.Day, log, now);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<OmbiUser> GetUser()
|
private async Task<OmbiUser> GetUser()
|
||||||
|
@ -137,7 +145,7 @@ namespace Ombi.Core.Services
|
||||||
return await _userManager.Users.FirstOrDefaultAsync(x => x.NormalizedUserName == username);
|
return await _userManager.Users.FirstOrDefaultAsync(x => x.NormalizedUserName == username);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task<RequestQuotaCountModel> CalculateBasicRemaingRequests(OmbiUser user, int limit, RequestLimitType type, IQueryable<RequestLog> log)
|
private static async Task<RequestQuotaCountModel> CalculateBasicRemaingRequests(OmbiUser user, int limit, RequestLimitType type, IQueryable<RequestLog> log, DateTime now)
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
DateTime oldestRequestedAt = DateTime.Now;
|
DateTime oldestRequestedAt = DateTime.Now;
|
||||||
|
@ -145,15 +153,15 @@ namespace Ombi.Core.Services
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case RequestLimitType.Day:
|
case RequestLimitType.Day:
|
||||||
count = limit - await log.CountAsync(x => x.RequestDate >= DateTime.UtcNow.Date);
|
count = limit - await log.CountAsync(x => x.RequestDate >= now.Date);
|
||||||
oldestRequestedAt = await log.Where(x => x.RequestDate >= DateTime.UtcNow.Date)
|
oldestRequestedAt = await log.Where(x => x.RequestDate >= now.Date)
|
||||||
.OrderBy(x => x.RequestDate)
|
.OrderBy(x => x.RequestDate)
|
||||||
.Select(x => x.RequestDate)
|
.Select(x => x.RequestDate)
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
nextRequest = oldestRequestedAt.AddDays(1).Date;
|
nextRequest = oldestRequestedAt.AddDays(1).Date;
|
||||||
break;
|
break;
|
||||||
case RequestLimitType.Week:
|
case RequestLimitType.Week:
|
||||||
var fdow = DateTime.UtcNow.FirstDateInWeek().Date;
|
var fdow = now.FirstDateInWeek().Date;
|
||||||
count = limit - await log.CountAsync(x => x.RequestDate >= fdow);
|
count = limit - await log.CountAsync(x => x.RequestDate >= fdow);
|
||||||
oldestRequestedAt = await log.Where(x => x.RequestDate >= fdow)
|
oldestRequestedAt = await log.Where(x => x.RequestDate >= fdow)
|
||||||
.OrderBy(x => x.RequestDate)
|
.OrderBy(x => x.RequestDate)
|
||||||
|
@ -162,7 +170,6 @@ namespace Ombi.Core.Services
|
||||||
nextRequest = fdow.AddDays(7).Date;
|
nextRequest = fdow.AddDays(7).Date;
|
||||||
break;
|
break;
|
||||||
case RequestLimitType.Month:
|
case RequestLimitType.Month:
|
||||||
var now = DateTime.UtcNow;
|
|
||||||
var firstDayOfMonth = new DateTime(now.Year, now.Month, 1);
|
var firstDayOfMonth = new DateTime(now.Year, now.Month, 1);
|
||||||
count = limit - await log.CountAsync(x => x.RequestDate >= firstDayOfMonth);
|
count = limit - await log.CountAsync(x => x.RequestDate >= firstDayOfMonth);
|
||||||
oldestRequestedAt = await log.Where(x => x.RequestDate >= firstDayOfMonth)
|
oldestRequestedAt = await log.Where(x => x.RequestDate >= firstDayOfMonth)
|
||||||
|
@ -182,8 +189,12 @@ namespace Ombi.Core.Services
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<RequestQuotaCountModel> GetRemainingTvRequests(OmbiUser user)
|
public async Task<RequestQuotaCountModel> GetRemainingTvRequests(OmbiUser user, DateTime now = default)
|
||||||
{
|
{
|
||||||
|
if (now == default)
|
||||||
|
{
|
||||||
|
now = DateTime.UtcNow;
|
||||||
|
}
|
||||||
if (user == null)
|
if (user == null)
|
||||||
{
|
{
|
||||||
user = await GetUser();
|
user = await GetUser();
|
||||||
|
@ -230,7 +241,7 @@ namespace Ombi.Core.Services
|
||||||
count = limit - (zeroEpisodeCount + episodeCount);
|
count = limit - (zeroEpisodeCount + episodeCount);
|
||||||
|
|
||||||
oldestRequestedAt = await log
|
oldestRequestedAt = await log
|
||||||
.Where(x => x.RequestDate >= DateTime.UtcNow.AddDays(-7))
|
.Where(x => x.RequestDate >= now.AddDays(-7))
|
||||||
.OrderBy(x => x.RequestDate)
|
.OrderBy(x => x.RequestDate)
|
||||||
.Select(x => x.RequestDate)
|
.Select(x => x.RequestDate)
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
|
@ -244,7 +255,6 @@ namespace Ombi.Core.Services
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var now = DateTime.UtcNow;
|
|
||||||
switch (user.EpisodeRequestLimitType)
|
switch (user.EpisodeRequestLimitType)
|
||||||
{
|
{
|
||||||
case RequestLimitType.Day:
|
case RequestLimitType.Day:
|
||||||
|
@ -255,7 +265,7 @@ namespace Ombi.Core.Services
|
||||||
episodeCount = await filteredLog.Where(x => x.EpisodeCount != 0).Select(x => x.EpisodeCount).SumAsync();
|
episodeCount = await filteredLog.Where(x => x.EpisodeCount != 0).Select(x => x.EpisodeCount).SumAsync();
|
||||||
count = limit - (zeroEpisodeCount + episodeCount);
|
count = limit - (zeroEpisodeCount + episodeCount);
|
||||||
|
|
||||||
oldestRequestedAt = await log.Where(x => x.RequestDate >= DateTime.UtcNow.Date)
|
oldestRequestedAt = await log.Where(x => x.RequestDate >= now.Date)
|
||||||
.OrderBy(x => x.RequestDate)
|
.OrderBy(x => x.RequestDate)
|
||||||
.Select(x => x.RequestDate)
|
.Select(x => x.RequestDate)
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
|
@ -263,13 +273,13 @@ namespace Ombi.Core.Services
|
||||||
break;
|
break;
|
||||||
case RequestLimitType.Week:
|
case RequestLimitType.Week:
|
||||||
var fdow = now.FirstDateInWeek().Date;
|
var fdow = now.FirstDateInWeek().Date;
|
||||||
filteredLog = log.Where(x => x.RequestDate >= DateTime.UtcNow.Date.AddDays(-7));
|
filteredLog = log.Where(x => x.RequestDate >= now.Date.AddDays(-7));
|
||||||
// Needed, due to a bug which would cause all episode counts to be 0
|
// Needed, due to a bug which would cause all episode counts to be 0
|
||||||
zeroEpisodeCount = await filteredLog.Where(x => x.EpisodeCount == 0).Select(x => x.EpisodeCount).CountAsync();
|
zeroEpisodeCount = await filteredLog.Where(x => x.EpisodeCount == 0).Select(x => x.EpisodeCount).CountAsync();
|
||||||
episodeCount = await filteredLog.Where(x => x.EpisodeCount != 0).Select(x => x.EpisodeCount).SumAsync();
|
episodeCount = await filteredLog.Where(x => x.EpisodeCount != 0).Select(x => x.EpisodeCount).SumAsync();
|
||||||
count = limit - (zeroEpisodeCount + episodeCount);
|
count = limit - (zeroEpisodeCount + episodeCount);
|
||||||
|
|
||||||
oldestRequestedAt = await log.Where(x => x.RequestDate >= DateTime.UtcNow.Date.AddDays(-7))
|
oldestRequestedAt = await log.Where(x => x.RequestDate >= now.Date.AddDays(-7))
|
||||||
.OrderBy(x => x.RequestDate)
|
.OrderBy(x => x.RequestDate)
|
||||||
.Select(x => x.RequestDate)
|
.Select(x => x.RequestDate)
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
|
@ -277,13 +287,13 @@ namespace Ombi.Core.Services
|
||||||
break;
|
break;
|
||||||
case RequestLimitType.Month:
|
case RequestLimitType.Month:
|
||||||
var firstDayOfMonth = new DateTime(now.Year, now.Month, 1);
|
var firstDayOfMonth = new DateTime(now.Year, now.Month, 1);
|
||||||
filteredLog = log.Where(x => x.RequestDate >= DateTime.UtcNow.Date.AddMonths(-1));
|
filteredLog = log.Where(x => x.RequestDate >= now.Date.AddMonths(-1));
|
||||||
// Needed, due to a bug which would cause all episode counts to be 0
|
// Needed, due to a bug which would cause all episode counts to be 0
|
||||||
zeroEpisodeCount = await filteredLog.Where(x => x.EpisodeCount == 0).Select(x => x.EpisodeCount).CountAsync();
|
zeroEpisodeCount = await filteredLog.Where(x => x.EpisodeCount == 0).Select(x => x.EpisodeCount).CountAsync();
|
||||||
episodeCount = await filteredLog.Where(x => x.EpisodeCount != 0).Select(x => x.EpisodeCount).SumAsync();
|
episodeCount = await filteredLog.Where(x => x.EpisodeCount != 0).Select(x => x.EpisodeCount).SumAsync();
|
||||||
count = limit - (zeroEpisodeCount + episodeCount);
|
count = limit - (zeroEpisodeCount + episodeCount);
|
||||||
|
|
||||||
oldestRequestedAt = await log.Where(x => x.RequestDate >= DateTime.UtcNow.Date.AddMonths(-1))
|
oldestRequestedAt = await log.Where(x => x.RequestDate >= now.Date.AddMonths(-1))
|
||||||
.OrderBy(x => x.RequestDate)
|
.OrderBy(x => x.RequestDate)
|
||||||
.Select(x => x.RequestDate)
|
.Select(x => x.RequestDate)
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue