fixed crash when deleting Raids

removed Raid from Reminders and DiscordMessages
This commit is contained in:
Sarah Faey 2022-11-29 23:59:28 +01:00
parent 5d429ff90f
commit 893ec1f16d
11 changed files with 825 additions and 47 deletions

View file

@ -196,16 +196,6 @@ namespace Lieb.Data
context.Equipped.AddRange(equippedBuilds);
context.SaveChanges();
var discordMessage = new DiscordRaidMessage()
{
DiscordChannelId = 666954070388637697,
DiscordGuildId = 666953424734257182,
DiscordMessageId = 1040355092630614087,
RaidId = raid.RaidId
};
context.DiscordRaidMessages.Add(discordMessage);
context.SaveChanges();
#endif
}
}

View file

@ -95,6 +95,11 @@ namespace Lieb.Data
context.RaidReminders.RemoveRange(raid.Reminders);
context.DiscordRaidMessages.RemoveRange(raid.DiscordRaidMessages);
await context.SaveChangesAsync();
raid.SignUps.Clear();
raid.Roles.Clear();
raid.RaidLogs.Clear();
raid.Reminders.Clear();
raid.DiscordRaidMessages.Clear();
context.Raids.Remove(raid);
await context.SaveChangesAsync();
@ -487,8 +492,6 @@ namespace Lieb.Data
{
using var context = _contextFactory.CreateDbContext();
List<RaidReminder> reminders = context.RaidReminders
.Include(r => r.Raid)
.ThenInclude(r => r.SignUps)
.Where(r => !r.Sent)
.ToList();
@ -498,7 +501,11 @@ namespace Lieb.Data
switch(reminder.Type)
{
case RaidReminder.ReminderType.User:
await _discordService.SendUserReminder(reminder, reminder.Raid);
Raid raid = context.Raids
.Include(r => r.SignUps)
.Include(r => r.Reminders)
.First(r => r.Reminders.Where(re => re.RaidReminderId == reminder.RaidReminderId).Any());
await _discordService.SendUserReminder(reminder, raid);
break;
case RaidReminder.ReminderType.Channel:
await _discordService.SendChannelReminder(reminder);

View file

@ -28,6 +28,8 @@ namespace Lieb.Data
return context.RaidTemplates
.Include(r => r.Roles)
.Include(r => r.Reminders)
.Include(r => r.DiscordRaidMessages)
.Include(r => r.TemplateLogs)
.FirstOrDefault(t => t.RaidTemplateId == raidTemplateId);
}
@ -61,7 +63,12 @@ namespace Lieb.Data
context.RaidRoles.RemoveRange(template.Roles);
context.RaidReminders.RemoveRange(template.Reminders);
context.DiscordRaidMessages.RemoveRange(template.DiscordRaidMessages);
context.RaidLogs.RemoveRange(template.TemplateLogs);
await context.SaveChangesAsync();
template.Roles.Clear();
template.Reminders.Clear();
template.DiscordRaidMessages.Clear();
template.TemplateLogs.Clear();
context.RaidTemplates.Remove(template);
await context.SaveChangesAsync();
}