LookPlayersListCommand.cs 1.2 KB

123456789101112131415161718192021222324252627282930
  1. using System.Linq;
  2. using System.Threading.Tasks;
  3. using MafiaTelegramBot.Controllers;
  4. using MafiaTelegramBot.DataBase.EntityDao;
  5. using MafiaTelegramBot.Game;
  6. using MafiaTelegramBot.Resources;
  7. using Telegram.Bot.Types;
  8. namespace MafiaTelegramBot.Models.Commands
  9. {
  10. public class LookPlayersListCommand : Command
  11. {
  12. protected override string Name => keyboard.look_players_list;
  13. protected override async Task<Message> Execute(Update update)
  14. {
  15. var user = await UserDao.GetPlayerById(UserId);
  16. var roomKey = RoomEncrypter.GetCode(user.GetRoomName());
  17. var room = RoomController.GetRoom(roomKey);
  18. if(room == null)
  19. return await Bot.SendWithMarkdown2(ChatId, strings.room_does_not_exists);
  20. var users = RoomController.GetPlayers(roomKey);
  21. var list = users.Count > 1
  22. ? users.Where(player => !player.Equals(user))
  23. .Aggregate($"{strings.users_list} {users.Count}\n\n @{user.Username}\n{strings.you}", (current, player) => current + $"\n \n@{player.Username}\n{player.NickName}")
  24. : strings.users_list_empty;
  25. return await Bot.SendWithMarkdown2(ChatId, list);
  26. }
  27. }
  28. }