Files
managing-apps/src/Managing.Infrastructure.Messengers/Discord/SlashCommands.cs
2025-05-16 22:30:18 +07:00

38 lines
1.8 KiB
C#

using Discord.WebSocket;
using Managing.Application.Abstractions.Services;
using Managing.Domain.Statistics;
namespace Managing.Infrastructure.Messengers.Discord;
public static class SlashCommands
{
public static async Task HandleLeaderboardCommand(IServiceProvider service, SocketSlashCommand command)
{
var statisticService = (IStatisticService)service.GetService(typeof(IStatisticService));
var traders = statisticService.GetBestTraders();
await command.FollowupAsync(embed: DiscordHelpers.GetTradersEmbed(traders, "Leaderboard"), ephemeral: true);
}
public static async Task HandleNoobiesboardCommand(IServiceProvider service, SocketSlashCommand command)
{
var statisticService = (IStatisticService)service.GetService(typeof(IStatisticService));
var traders = statisticService.GetBadTraders();
await command.FollowupAsync(embed: DiscordHelpers.GetTradersEmbed(traders, "Noobiesboard"), ephemeral: true);
}
public static async Task HandleLeadboardPositionCommand(IServiceProvider service, SocketSlashCommand command)
{
var statisticService = (IStatisticService)service.GetService(typeof(IStatisticService));
var trades = await statisticService.GetLeadboardPositons();
await command.FollowupAsync(embed: DiscordHelpers.GetTradesEmbed(trades, "Leaderboard Open position"),
ephemeral: true);
}
public static async Task HandleFundingRateCommand(IServiceProvider service, SocketSlashCommand command)
{
var statisticService = (IStatisticService)service.GetService(typeof(IStatisticService));
List<FundingRate> fundingRates = await statisticService.GetFundingRates();
await command.FollowupAsync(
embed: DiscordHelpers.GetFundingRatesEmbed(fundingRates, "Leaderboard Open position"), ephemeral: true);
}
}