public GameModel Draw(int[] arr, int bet, string username)
        {
            _drawCards = new List <Card>();
            UserAccount userAccount = dbContext.UserAccounts.Where(u => u.Username == username).FirstOrDefault();

            for (int i = 0; i < arr.Length; i++)
            {
                if (arr[i] == 0)
                {
                    _drawCards.Add(_dealCards[i + 5]);
                }
                else
                {
                    _drawCards.Add(_dealCards[i]);
                }
            }
            GameModel model = new GameModel
            {
                Message             = ApplicationConstants.GameOver,
                Hand                = _drawCards,
                GameOver            = true,
                Credits             = (int)userAccount.Credits,
                BetAmount           = bet,
                DoubleBonusPaytable = dbContext.DoubleBonusPayouts.ToList()
            };

            DoubleBonusHandInfo.EvaluateHand(model, _drawCards, userAccount);
            if (model.Credits <= 0)
            {
                model.Credits       = 100;
                userAccount.Credits = 100;
                dbContext.SaveChanges();
            }
            return(model);
        }
        public GameModel Deal(int bet, string username)
        {
            UserAccount userAccount = dbContext.UserAccounts.Where(u => u.Username == username).FirstOrDefault();
            List <int>  shuffle     = GameAction.ShuffleDeck();

            _dealCards = new List <Card>();
            foreach (var item in shuffle)
            {
                var card = dbContext.Cards.Where(c => c.CardId == item).FirstOrDefault();
                _dealCards.Add(card);
            }
            GameModel model = new GameModel
            {
                Message             = ApplicationConstants.HoldDrawMessage,
                Hand                = _dealCards.Take(5).ToList(),
                GameOver            = false,
                BetAmount           = bet,
                DoubleBonusPaytable = dbContext.DoubleBonusPayouts.ToList(),
                Credits             = (int)userAccount.Credits - bet
            };

            DoubleBonusHandInfo.EvaluateHand(model, _dealCards, userAccount);
            if (model.Credits <= 0)
            {
                model.Credits       = 100;
                userAccount.Credits = 100;
                dbContext.SaveChanges();
            }
            model.DoubleBonusPaytable = model.DoubleBonusPaytable.OrderByDescending(e => e.Id).ToList();
            return(model);
        }