32 lines
1.3 KiB
C#

using CompatBot.Database;
using DSharpPlus.Commands.Processors.TextCommands;
using Microsoft.EntityFrameworkCore;
namespace CompatBot.Commands;
internal static partial class Bot
{
[Command("import")]
internal static class Import
{
[Command("metacritic"), LimitedToSpamChannel]
[Description("Import Metacritic database dump and link it to existing PSN items")]
public static async ValueTask ImportMc(TextCommandContext ctx)
{
if (await ImportLockObj.WaitAsync(0).ConfigureAwait(false))
try
{
await CompatList.ImportMetacriticScoresAsync().ConfigureAwait(false);
await using var db = await ThumbnailDb.OpenReadAsync().ConfigureAwait(false);
var linkedItems = await db.Thumbnail.CountAsync(i => i.MetacriticId != null).ConfigureAwait(false);
await ctx.Channel.SendMessageAsync($"Importing Metacritic info was successful, linked {linkedItems} items").ConfigureAwait(false);
}
finally
{
ImportLockObj.Release();
}
else
await ctx.Channel.SendMessageAsync("Another import operation is already in progress").ConfigureAwait(false);
}
}
}