//GamePlay public double PlayGame(int id, double betAmt, bool highRoller, BetType bType = BetType.pass, string playerSelection = "0") { double amount = 0; var game = new GameService(_userId); string gameName = game.GetGameById(id).GameName; double payout = 0; //game bet limits var min = game.GetGameById(id).MinBet; var max = game.GetGameById(id).MaxBet; if (gameName.ToLower() == "russian roulette") { min = PlayerBalance(_userId); max = min; } if (betAmt < min || betAmt > max) { return(0); } else if (!highRoller == game.GetGameById(id).IsHighStakes) { return(0); } else if (playerSelection.Count(x => x == ',') > 10) { return(0); } else { switch (gameName.ToLower()) { case "baccarat": payout = game.Baccarat(); break; case "blackjack": payout = game.Blackjack(); break; case "craps": payout = game.Craps(bType); break; case "roulette": List <int> value = betValue(id, bType, playerSelection); payout = game.Roulette(bType, value); break; case "keno": //List<int> from "player selection" range = 1-80; up to 20 #'s selected - let's use 10 #'s List <int> playerNums = betValue(id, bType, playerSelection); payout = game.Keno(playerNums); break; case "russian roulette": double amt = PlayerBalance(_userId); payout = game.RussianRoulette(); //Get player bank balance break; default: //switch on gameType var type = GetGameById(id).TypeOfGame; switch (type.ToString().ToLower()) { case "dice": payout = game.baseDice(); break; case "wheel": payout = game.baseWheel(); break; case "random_num": int numPick = r.Next(1, 10); //player selects num payout = game.baseRandNum(numPick); break; default: payout = baseGame(); break; } payout = game.baseGame(); break; } if (payout > 0) { amount = payout * betAmt; } else if (payout < 0 && gameName.ToLower() == "russian roulette") { amount = 12345; } //accountDelete else if (payout == 0 && gameName.ToLower() == "russian roulette") { amount = 45678; } else { amount = -1 * betAmt; } return(amount); } }