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()
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue