1
Fork 0
mirror of https://gitlab.com/Kwoth/nadekobot.git synced 2024-10-02 12:09:07 +00:00

dev: some more cleanup/attempts to fix a weird mysql error

This commit is contained in:
Kwoth 2024-09-08 14:30:39 +00:00
parent 33663d7efc
commit fb62df7aa2
2 changed files with 8 additions and 8 deletions

View file

@ -90,16 +90,16 @@ public sealed class Bot : IBot
public IReadOnlyList<ulong> GetCurrentGuildIds()
=> Client.Guilds.Select(x => x.Id).ToList().AsReadOnly();
private void AddServices()
private async Task AddServices()
{
var startingGuildIdList = GetCurrentGuildIds();
var startTime = Stopwatch.GetTimestamp();
var bot = Client.CurrentUser;
using (var uow = _db.GetDbContext())
await using (var uow = _db.GetDbContext())
{
uow.EnsureUserCreated(bot.Id, bot.Username, bot.Discriminator, bot.AvatarId);
AllGuildConfigs = uow.GuildConfigs.GetAllGuildConfigs(startingGuildIdList);
AllGuildConfigs = await uow.GuildConfigs.GetAllGuildConfigs(startingGuildIdList);
}
// var svcs = new StandardKernel(new NinjectSettings()
@ -265,7 +265,7 @@ public sealed class Bot : IBot
Log.Information("Shard {ShardId} loading services...", Client.ShardId);
try
{
AddServices();
await AddServices();
}
catch (Exception ex)
{

View file

@ -1,4 +1,5 @@
#nullable disable
using LinqToDB.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using NadekoBot.Db.Models;
@ -42,7 +43,7 @@ public static class GuildConfigExtensions
}
private static IQueryable<GuildConfig> IncludeEverything(this DbSet<GuildConfig> configs)
=> configs.AsQueryable()
=> configs
.AsSplitQuery()
.Include(gc => gc.CommandCooldowns)
.Include(gc => gc.FollowedStreams)
@ -52,14 +53,13 @@ public static class GuildConfigExtensions
.ThenInclude(x => x.ExclusionList)
;
public static IReadOnlyCollection<GuildConfig> GetAllGuildConfigs(
public static Task<GuildConfig[]> GetAllGuildConfigs(
this DbSet<GuildConfig> configs,
IReadOnlyList<ulong> availableGuilds)
=> configs.IncludeEverything()
.Where(x => availableGuilds.Contains(x.GuildId))
.AsNoTracking()
.ToList()
.AsReadOnly();
.ToArrayAsyncEF();
/// <summary>
/// Gets and creates if it doesn't exist a config for a guild.