DecreaseRoomMaxCapacity.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Threading.Tasks;
  2. using MafiaTelegramBot.Controllers;
  3. using MafiaTelegramBot.DataBase;
  4. using MafiaTelegramBot.Resources;
  5. using Telegram.Bot.Types;
  6. using Telegram.Bot.Types.ReplyMarkups;
  7. namespace MafiaTelegramBot.Models.Inlines
  8. {
  9. public class DecreaseRoomMaxCapacity:Query
  10. {
  11. protected override string Name => strings.decrease_number_of_players_callback;
  12. public override async Task<Message> Execute(Update update)
  13. {
  14. var messageId = update.CallbackQuery.Message.MessageId;
  15. var chatId = update.CallbackQuery.Message.Chat.Id;
  16. var data = update.CallbackQuery.Data;
  17. var userId = long.Parse(data.Split('|')[1]);
  18. var user = await UserDao.GetUserById(userId);
  19. var room_name = user.GetCurrentGame();
  20. var room = await RoomController.GetRoom(room_name);
  21. var room_max_capacity = room.MaxPlayers;
  22. if (room_max_capacity > Constants.PLAYER_LIMITS_MIN)
  23. {
  24. room_max_capacity = --room.MaxPlayers;
  25. }
  26. var message = $"{strings.max_capacity_message}: {room_max_capacity}";
  27. var inlineKeyboard = new InlineKeyboardMarkup(new[]
  28. {
  29. new[] {InlineKeyboardButton.WithCallbackData(strings.decrease_number_of_players, $"{strings.decrease_number_of_players_callback}|{userId}"), InlineKeyboardButton.WithCallbackData(strings.increase_number_of_players, $"{strings.increase_number_of_players_callback}|{userId}")}
  30. });
  31. return await Bot.Get().EditMessageTextAsync(chatId, messageId, message, replyMarkup:inlineKeyboard);
  32. }
  33. }
  34. }