Improve GuildConfig handling and initialization in DbExtensions
This commit is contained in:
parent
964833502c
commit
fd5b7959c5
1 changed files with 18 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue