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); }