fix for .leaveunkeptservers

This commit is contained in:
Toastie (DCS Team) 2024-08-27 21:31:39 +12:00
parent ec403bbe5d
commit 7f935a72c1
Signed by: toastie_t0ast
GPG key ID: 27F3B6855AFD40A4

View file

@ -59,14 +59,19 @@ public sealed class CleanupService : ICleanupService, IReadyExecutor, IEService
var allGuildIds = _client.Guilds.Select(x => x.Id);
var table = await GetKeptGuildsTable();
HashSet<ulong> dontDelete;
await using (var db = _db.GetDbContext())
{
await using var ctx = db.CreateLinqToDBConnection();
var table = ctx.CreateTable<KeptGuilds>(tableOptions: TableOptions.CheckExistence);
var dontDeleteList = await table
var dontDeleteList = await table
.Where(x => allGuildIds.Contains(x.GuildId))
.Select(x => x.GuildId)
.ToListAsyncLinqToDB();
var dontDelete = dontDeleteList.ToHashSet();
dontDelete = dontDeleteList.ToHashSet();
}
guildIds = new();
foreach (var guildId in allGuildIds)
@ -209,8 +214,9 @@ public sealed class CleanupService : ICleanupService, IReadyExecutor, IEService
public async Task<bool> KeepGuild(ulong guildId)
{
var table = await GetKeptGuildsTable();
await using var db = _db.GetDbContext();
await using var ctx = db.CreateLinqToDbContext();
var table = ctx.CreateTable<KeptGuilds>(tableOptions: TableOptions.CheckExistence);
if (await table.AnyAsyncLinqToDB(x => x.GuildId == guildId))
return false;
@ -223,17 +229,11 @@ public sealed class CleanupService : ICleanupService, IReadyExecutor, IEService
}
public async Task<int> GetKeptGuildCount()
{
var table = await GetKeptGuildsTable();
return await table.CountAsync();
}
private async Task<ITable<KeptGuilds>> GetKeptGuildsTable()
{
await using var db = _db.GetDbContext();
await using var ctx = db.CreateLinqToDBContext();
var table = ctx.CreateTable<KeptGuilds>(tableOptions: TableOptions.CheckExistence);
return table;
return await table.CountAsync();
}
public async Task LeaveUnkeptServers()