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()
{
GuildId = guildId
});
}
@ -40,9 +41,23 @@ public static class DbExtensions
public static GuildConfig GuildConfigsForId(
this DbContext ctx,
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);
return query.FirstOrDefault();
includes ??= static set => set;
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;
}
}