123456789101112131415161718192021222324252627282930313233343536 |
- using System;
- using System.Linq;
- using System.Threading.Tasks;
- using MafiaTelegramBot.Controllers;
- using MafiaTelegramBot.Game;
- using MafiaTelegramBot.Resources;
- using Telegram.Bot.Types;
- namespace MafiaTelegramBot.Commands.CallbackQueries
- {
- public class ShowMyExtendedStatsCallbackQueryHandler : CallbackQueryHandler
- {
- protected override string Command => Callback.ShowMyExtendedStats.ToString();
- public override async Task<Message> Execute(Update update)
- {
- var rolesList = Enum.GetValues(typeof(Roles)).Cast<Roles>().ToList();
- rolesList.Remove(Roles.None);
- rolesList.Remove(Roles.All);
- var message = "";
- if (User.Statistics[Roles.All].Games > 0)
- foreach (var role in rolesList)
- {
- if (!User.Statistics.Contains(role) || User.Statistics[role].Games <= 0) continue;
- var statsRow = User.Statistics[role];
- message += string.Format(strings.role_string, roles.ResourceManager.GetString(role.ToString()), statsRow.Wins, statsRow.Games, (int) (statsRow.GetWinrate()*100)) + '\n';
- }
- else
- message += strings.no_stats_by_roles;
- return await MessageController.EditMessage(User.Info,
- update.CallbackQuery.Message.MessageId, message, Keyboard.BackButton());
- }
- public ShowMyExtendedStatsCallbackQueryHandler(Player player) : base(player) { }
- }
- }
|