changed reminders to use DateTimeOffset
This commit is contained in:
parent
62dc3d1efa
commit
ed7a1905fd
3 changed files with 19 additions and 19 deletions
|
@ -410,24 +410,22 @@ namespace Lieb.Data
|
||||||
public async Task SendReminders()
|
public async Task SendReminders()
|
||||||
{
|
{
|
||||||
using var context = _contextFactory.CreateDbContext();
|
using var context = _contextFactory.CreateDbContext();
|
||||||
DateTimeOffset now = DateTimeOffset.UtcNow;
|
List<RaidReminder> reminders = context.RaidReminders
|
||||||
List<Raid> raids = context.Raids
|
.Include(r => r.Raid)
|
||||||
.Include(r => r.Reminders)
|
.Where(r => !r.Sent)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
foreach(Raid raid in raids.Where(r => r.StartTimeUTC > now))
|
DateTimeOffset now = DateTimeOffset.UtcNow;
|
||||||
|
foreach(RaidReminder reminder in reminders.Where(r => r.ReminderTime < now))
|
||||||
{
|
{
|
||||||
foreach(RaidReminder reminder in raid.Reminders.Where(reminder => !reminder.Sent && raid.StartTimeUTC.AddHours(-reminder.HoursBeforeRaid) < DateTime.UtcNow))
|
switch(reminder.Type)
|
||||||
{
|
{
|
||||||
switch(reminder.Type)
|
case RaidReminder.ReminderType.User:
|
||||||
{
|
await _discordService.SendUserReminder(reminder);
|
||||||
case RaidReminder.ReminderType.User:
|
break;
|
||||||
await _discordService.SendUserReminder(reminder);
|
case RaidReminder.ReminderType.Channel:
|
||||||
break;
|
await _discordService.SendChannelReminder(reminder);
|
||||||
case RaidReminder.ReminderType.Channel:
|
break;
|
||||||
await _discordService.SendChannelReminder(reminder);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,8 @@ namespace Lieb.Models.GuildWars2.Raid
|
||||||
{
|
{
|
||||||
Description = role.Description,
|
Description = role.Description,
|
||||||
Name = role.Name,
|
Name = role.Name,
|
||||||
Spots = role.Spots
|
Spots = role.Spots,
|
||||||
|
IsRandomSignUpRole = role.IsRandomSignUpRole
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
foreach (RaidReminder reminder in template.Reminders)
|
foreach (RaidReminder reminder in template.Reminders)
|
||||||
|
@ -69,10 +70,11 @@ namespace Lieb.Models.GuildWars2.Raid
|
||||||
{
|
{
|
||||||
DiscordServerId = reminder.DiscordServerId,
|
DiscordServerId = reminder.DiscordServerId,
|
||||||
DiscordChannelId = reminder.DiscordChannelId,
|
DiscordChannelId = reminder.DiscordChannelId,
|
||||||
HoursBeforeRaid = reminder.HoursBeforeRaid,
|
ReminderTime = reminder.ReminderTime,
|
||||||
Message = reminder.Message,
|
Message = reminder.Message,
|
||||||
Sent = reminder.Sent,
|
Sent = reminder.Sent,
|
||||||
Type = reminder.Type
|
Type = reminder.Type,
|
||||||
|
RaidId = reminder.RaidId
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
foreach (DiscordRaidMessage message in template.DiscordRaidMessages)
|
foreach (DiscordRaidMessage message in template.DiscordRaidMessages)
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace Lieb.Models.GuildWars2.Raid
|
||||||
public string Message { get; set; } = string.Empty;
|
public string Message { get; set; } = string.Empty;
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public double HoursBeforeRaid { get; set; }
|
public DateTimeOffset ReminderTime { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
public ulong DiscordServerId { get; set; }
|
public ulong DiscordServerId { get; set; }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue