public async Task <List <CardInHandModel> > GetCardHandModelListForPlayer(int userId, bool allCards, int trump) { List <CardInHandModel> listOfCards = new List <CardInHandModel>(); var player = await _playerRepository.GetPlayerByUserIdAsync(userId); if (string.IsNullOrEmpty(player.Hand)) { return(listOfCards); } var cards = CardsManager.GetCardListFromHandString(player.Hand); if (allCards) { cards = cards.OrderCards(); var trumpSuit = (CardSuit)trump; var belaAvailable = cards.Exists(c => c.Value == CardValue.King && c.Suit == trumpSuit) && cards.Exists(c => c.Value == CardValue.Queen && c.Suit == trumpSuit); var trumpSuitString = trumpSuit.GetStringValue(); listOfCards = cards .Select(c => new CardInHandModel() { CardString = c.ToString(), CardUrl = c.ImgPath, AskForBela = belaAvailable && c.Suit == trumpSuit && (c.Value == CardValue.Queen || c.Value == CardValue.King) }).ToList(); } else { var firstSix = cards.Take(6).ToList().OrderCards(); listOfCards = firstSix .Select(c => new CardInHandModel() { CardString = c.ToString(), CardUrl = c.ImgPath, AskForBela = false }).ToList(); listOfCards.Add(new CardInHandModel() { CardString = "", CardUrl = CardsManager.GetBackgroundCardImgPath() }); listOfCards.Add(new CardInHandModel() { CardString = "", CardUrl = CardsManager.GetBackgroundCardImgPath() }); } return(listOfCards); }