private void Move(List <Player> players, Game game, List <Move> moves) { var deckOfCard = new List <Card>(); var dealDeck = new DealCardsHelper(); dealDeck.GetAllCards(ref deckOfCard); int moveIterator = moves.Where(p => p.PlayerId == players.SingleOrDefault(x => x.PlayerRole == PlayerRole.Player)?.Id).Count(); if (moveIterator > 0) { DeleteUsedCardsFromDeck(deckOfCard, moves); } var random = new Random(); foreach (var user in players) { int cardToUser = random.Next(0, deckOfCard.Count); Card cardToAdd = deckOfCard[cardToUser]; moves.Add(new Move { CardId = cardToAdd.Id, CardName = cardToAdd.Name, MoveNumber = moveIterator + 1, GameId = game.Id, PlayerId = user.Id, CardPoints = cardToAdd.CardPoints }); deckOfCard.Remove(cardToAdd); } }
private async Task MoveForOnePlayer(Player player, List <Move> moves, Guid gameId) { var deckOfCard = new List <Card>(); var dealDeck = new DealCardsHelper(); dealDeck.GetAllCards(ref deckOfCard); DeleteUsedCardsFromDeck(deckOfCard, moves); Card cardToAdd = dealDeck.GetCard(deckOfCard); int moveIterator = moves.Where(p => p.PlayerId == player.Id).Count(); var move = new Move { CardId = cardToAdd.Id, GameId = gameId, CardName = cardToAdd.Name, CardPoints = cardToAdd.CardPoints, PlayerId = player.Id, MoveNumber = moveIterator + 1 }; await _moveRepository.Add(move); }