fixed minuser calculations

This commit is contained in:
Sarah Faey 2023-01-14 17:37:08 +01:00
parent 715b14ecc5
commit 6d6e720695
3 changed files with 8 additions and 8 deletions

View file

@ -308,8 +308,7 @@ namespace Lieb.Data
public static ApiRaid ConvertRaid(Raid raid)
{
string title = raid.Title;
if (raid.SignUps.Count < raid.MinUsers
&& raid.MinUserDeadLineUTC.UtcDateTime > DateTimeOffset.UtcNow)
if (!raid.HasEnoughUsers && raid.MinUserDeadLineUTC.UtcDateTime < DateTimeOffset.UtcNow)
{
title = $"The raid was canceled because of not enough sign ups.\n\n{raid.Title}";
}

View file

@ -468,8 +468,7 @@ namespace Lieb.Data
return false;
}
if (raid.SignUps.Count < raid.MinUsers
&& raid.MinUserDeadLineUTC < DateTimeOffset.UtcNow)
if (!raid.HasEnoughUsers && raid.MinUserDeadLineUTC < DateTimeOffset.UtcNow)
{
errorMessage = $"The raid was canceled because of not enough sign ups.";
return false;
@ -700,8 +699,8 @@ namespace Lieb.Data
using var context = _contextFactory.CreateDbContext();
List<Raid> raids = context.Raids
.Include(r => r.SignUps)
.Where(r => r.SignUps.Count < r.MinUsers && r.MinUserPollId == null).ToList();
foreach (Raid raid in raids.Where(r => r.MinUserDeadLineUTC < DateTimeOffset.UtcNow && r.StartTimeUTC > DateTimeOffset.UtcNow))
.Where(r => r.MinUserPollId == null).ToList();
foreach (Raid raid in raids.Where(r => !r.HasEnoughUsers && r.MinUserDeadLineUTC < DateTimeOffset.UtcNow && r.StartTimeUTC > DateTimeOffset.UtcNow))
{
raid.MinUserPollId = await _pollService.CreatePoll(
"The raid has not the required users, do you want to raid anyway?",
@ -716,8 +715,8 @@ namespace Lieb.Data
using var context = _contextFactory.CreateDbContext();
List<Raid> raids = context.Raids
.Include(r => r.SignUps)
.Where(r => r.SignUps.Count < r.MinUsers && r.MinUserPollId != null).ToList();
foreach (Raid raid in raids.Where(r => r.MinUserDeadLineUTC < DateTimeOffset.UtcNow && r.StartTimeUTC > DateTimeOffset.UtcNow))
.Where(r => r.MinUserPollId != null).ToList();
foreach (Raid raid in raids.Where(r => !r.HasEnoughUsers && r.MinUserDeadLineUTC < DateTimeOffset.UtcNow && r.StartTimeUTC > DateTimeOffset.UtcNow))
{
Poll poll = _pollService.GetPoll(raid.MinUserPollId.Value);

View file

@ -20,6 +20,8 @@ namespace Lieb.Models.GuildWars2.Raid
public ICollection<RaidSignUp> SignUps { get; set; } = new HashSet<RaidSignUp>();
public bool HasEnoughUsers {get{ return SignUps.Where(s => s.SignUpType != SignUpType.SignedOff && s.SignUpType != SignUpType.Flex).Count() >= this.MinUsers;}}
public Raid() { }
public Raid(RaidTemplate template) : base(template, template.TimeZone, true)