public static List <MessageConfig> FindGameCommand(int playerId) { var members = new MemberRepository(); var characterRepository = new CharacterRepository(); var lobyRepository = new LobbyRepository(); var msg = new List <MessageConfig>(); if (LobbyService.CheckLobby(playerId)) { msg.Add(new MessageConfig { Answer = "Вы уже находитесь в лобби", PlayerId = playerId }); return(msg); } //TODO: isLobbyactive LobbyService.AddUser(playerId); if (LobbyService.EmptyPlaceCount(playerId) != 0) { msg.Add(new MessageConfig { Answer = $"Вы добавлены в лобби, осталось игроков для начала игры: *{LobbyService.EmptyPlaceCount(playerId)}* " + $"\n /stop - для остановки поиска лобби" + $"\n /help - попросить совет", PlayerId = playerId }); var character = characterRepository.Read(playerId); character.State = CharacterState.FindGame; CharacterRepository.Update(character); return(msg); } LobbyService.StartNewLobby(playerId); var memberlist = members.ReadMemberList( members.ReadLobbyId(playerId)); string s = ""; List <string> Names = new List <string>(); var characters = CharacterRepository.ReadAll(); foreach (var member in memberlist) { s += "*" + (characters.Find(e => e.TelegramUserId == member.UserId).CharacterName) + "*" + ", "; } s = s.Substring(0, s.Length - 2); s += "."; ; foreach (var item in memberlist) { msg.Add(new MessageConfig { Answer = "Игра начата. Игроки: " + s + "" + "\n/leave - испортить другим игру" + "\n/afk - если кто-то долго не ходит \n", PlayerId = item.UserId, }); item.IsLobbyActive = true; members.Update(item); } foreach (var item in memberlist.Select(e => e.UserId)) { var character = characterRepository.Read(item); character.State = CharacterState.InGame; characterRepository.Update(character); } msg.Find(e => e.PlayerId == members.ReadMemberList(members.ReadLobbyId(playerId)).First().UserId).Answer += " Ваш ход"; msg.Find(e => e.PlayerId == members.ReadMemberList(members.ReadLobbyId(playerId)).First().UserId).KeyBoardId = KeyboardType.Move; return(msg); }