Improve GuildConfig handling and initialization in DbExtensions

This commit is contained in:
Toastie 2025-02-03 15:23:46 +13:00
parent 964833502c
commit fd5b7959c5
Signed by: toastie_t0ast
GPG key ID: 0861BE54AD481DC7

View file

@ -31,6 +31,7 @@ public static class DbExtensions
{ {
ctx.Add(gfc = new GuildFilterConfig() ctx.Add(gfc = new GuildFilterConfig()
{ {
GuildId = guildId
}); });
} }
@ -40,9 +41,23 @@ public static class DbExtensions
public static GuildConfig GuildConfigsForId( public static GuildConfig GuildConfigsForId(
this DbContext ctx, this DbContext ctx,
ulong guildId, ulong guildId,
Func<IQueryable<GuildConfig>, IQueryable<GuildConfig>> set) Func<IQueryable<GuildConfig>, IQueryable<GuildConfig>> includes = default)
{ {
var query = ctx.Set<GuildConfig>().Where(gc => gc.GuildId == guildId); includes ??= static set => set;
return query.FirstOrDefault();
var gc = includes(ctx.Set<GuildConfig>()
.Where(gc => gc.GuildId == guildId))
.FirstOrDefault();
if (gc is null)
{
ctx.Add(gc = new GuildConfig()
{
GuildId = guildId,
Permissions = []
});
}
return gc;
} }
} }