38 lines
1.8 KiB
C#
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);
|
|
}
|
|
} |