diff --git a/Lieb/Data/RaidService.cs b/Lieb/Data/RaidService.cs index a242398..1ab31c0 100644 --- a/Lieb/Data/RaidService.cs +++ b/Lieb/Data/RaidService.cs @@ -50,7 +50,7 @@ namespace Lieb.Data .FirstOrDefault(r => r.RaidId == raidId, new Raid()); } - public async Task AddOrEditRaid(Raid raid, List rolesToDelete, List remindersToDelete, List messagesToDelete) + public async Task AddOrEditRaid(Raid raid, List rolesToDelete, List remindersToDelete, List messagesToDelete, ulong changedBy) { if (raid != null) { @@ -58,6 +58,8 @@ namespace Lieb.Data if (raid.RaidId == 0) { context.Raids.Add(raid); + RaidLog log = RaidLog.CreateRaidLog(changedBy, raid); + await context.RaidLogs.AddAsync(log); await context.SaveChangesAsync(); } else @@ -78,6 +80,8 @@ namespace Lieb.Data context.RaidRoles.RemoveRange(raid.Roles.Where(r => !r.IsRandomSignUpRole)); } + RaidLog log = RaidLog.CreateRaidLog(changedBy, raid); + await context.RaidLogs.AddAsync(log); await context.SaveChangesAsync(); } await _discordService.PostRaidMessage(raid.RaidId); diff --git a/Lieb/Data/RaidTemplateService.cs b/Lieb/Data/RaidTemplateService.cs index e8b75d1..59e93b3 100644 --- a/Lieb/Data/RaidTemplateService.cs +++ b/Lieb/Data/RaidTemplateService.cs @@ -31,7 +31,7 @@ namespace Lieb.Data .FirstOrDefault(t => t.RaidTemplateId == raidTemplateId); } - public async Task AddOrEditTemplate(RaidTemplate template, List rolesToDelete, List remindersToDelete, List messagesToDelete) + public async Task AddOrEditTemplate(RaidTemplate template, List rolesToDelete, List remindersToDelete, List messagesToDelete, ulong changedBy) { if (template != null) { @@ -39,6 +39,8 @@ namespace Lieb.Data if (template.RaidTemplateId == 0) { context.RaidTemplates.Add(template); + RaidLog log = RaidLog.CreateRaidTemplateLog(changedBy, template); + await context.RaidLogs.AddAsync(log); } else { @@ -46,6 +48,8 @@ namespace Lieb.Data context.RaidRoles.RemoveRange(rolesToDelete); context.RaidReminders.RemoveRange(remindersToDelete); context.DiscordRaidMessages.RemoveRange(messagesToDelete); + RaidLog log = RaidLog.CreateRaidTemplateLog(changedBy, template); + await context.RaidLogs.AddAsync(log); } await context.SaveChangesAsync(); } diff --git a/Lieb/Models/GuildWars2/Raid/RaidLog.cs b/Lieb/Models/GuildWars2/Raid/RaidLog.cs index bb9c6f8..8233e0e 100644 --- a/Lieb/Models/GuildWars2/Raid/RaidLog.cs +++ b/Lieb/Models/GuildWars2/Raid/RaidLog.cs @@ -34,6 +34,7 @@ namespace Lieb.Models.GuildWars2.Raid public static RaidLog CreateRaidLog(ulong userId, Raid raid) { + raid.RaidLogs.Clear(); return new RaidLog() { Type = LogType.Raid, @@ -59,6 +60,7 @@ namespace Lieb.Models.GuildWars2.Raid public static RaidLog CreateRaidTemplateLog(ulong userId, RaidTemplate template) { + template.TemplateLogs.Clear(); return new RaidLog() { Type = LogType.RaidTemplate, diff --git a/Lieb/Models/GuildWars2/Raid/RaidTemplate.cs b/Lieb/Models/GuildWars2/Raid/RaidTemplate.cs index bbf8456..e41bb7b 100644 --- a/Lieb/Models/GuildWars2/Raid/RaidTemplate.cs +++ b/Lieb/Models/GuildWars2/Raid/RaidTemplate.cs @@ -19,5 +19,7 @@ namespace Lieb.Models.GuildWars2.Raid public int Interval { get; set; } public int CreateDaysBefore { get; set; } + + public ICollection TemplateLogs { get; set; } = new HashSet(); } } diff --git a/Lieb/Pages/Raids/RaidEdit/RaidEdit.razor b/Lieb/Pages/Raids/RaidEdit/RaidEdit.razor index b14fe16..c35bdf0 100644 --- a/Lieb/Pages/Raids/RaidEdit/RaidEdit.razor +++ b/Lieb/Pages/Raids/RaidEdit/RaidEdit.razor @@ -313,7 +313,7 @@ _raid.Reminders.Add(reminder); } - await RaidService.AddOrEditRaid(_raid, _rolesToDelete, _remindersToDelete, _messagesToDelete); + await RaidService.AddOrEditRaid(_raid, _rolesToDelete, _remindersToDelete, _messagesToDelete, _user.Id); NavigationManager.NavigateTo("raidoverview"); } } \ No newline at end of file diff --git a/Lieb/Pages/Raids/RaidEdit/RaidTemplateEdit.razor b/Lieb/Pages/Raids/RaidEdit/RaidTemplateEdit.razor index 8e8f660..d0935eb 100644 --- a/Lieb/Pages/Raids/RaidEdit/RaidTemplateEdit.razor +++ b/Lieb/Pages/Raids/RaidEdit/RaidTemplateEdit.razor @@ -334,7 +334,7 @@ _template.Reminders.Add(reminder); } - await RaidTemplateService.AddOrEditTemplate(_template, _rolesToDelete, _remindersToDelete, _messagesToDelete); + await RaidTemplateService.AddOrEditTemplate(_template, _rolesToDelete, _remindersToDelete, _messagesToDelete, _user.Id); NavigationManager.NavigateTo("raidtemplateoverview"); } } \ No newline at end of file