public async Task <GameLogicViewModel> StartNewGameAuthentificated([FromQuery] string playerName, [FromQuery] int numberOfBots, [FromQuery] string userId) { GameLogicViewModel result = null; result = await _gameLogicService.StartNewGameAuthentificated(playerName, numberOfBots, userId); return(result); }
public async Task <GameLogicViewModel> StartNewGame([FromQuery] string playerName, [FromQuery] int numberOfBots) { GameLogicViewModel result = null; //var userId = HttpContext.Session.GetString(SessionKeyPlayerId); //if (string.IsNullOrEmpty(userId)) //{ // result = await _gameLogicService.StartNewGame(playerName, numberOfBots); // userId = ""; // foreach(var player in result.Players) // { // if (!player.IsBot) // userId = player.Id; // } // HttpContext.Session.SetString(SessionKeyPlayerId, userId); //} //else //{ // result = await _gameLogicService.StartNewGame(playerName, numberOfBots, userId); //} result = await _gameLogicService.StartNewGame(playerName, numberOfBots); return(result); }
public async Task <GameLogicViewModel> StartNewGameRound(string currentGameId) { try { var lastRound = await _roundService.RetrieveLastGameRound(currentGameId); var result = await ResolveBets(lastRound.Id); if (!result) { Logger.WriteLogToFile("Could not save bets", "GameLogicService", "StartNewGameRound"); return(new GameLogicViewModel { GameId = Guid.Empty.ToString() }); } /// var newRoundId = await _roundService.CreateRound(new RoundServiceCreateRoundViewModel() { GameId = currentGameId, RoundNumber = lastRound.RoundNumber + 1, Deck = (new DeckLogic()).Stringify() }); var playerModels = await _playerService.RetrieveGamePlayers(currentGameId); var thePlayer = playerModels.Where(p => !p.IsBot).First(); var Players = new List <PlayerLogicViewModel>(); foreach (var playerModel in playerModels) { if (playerModel.Chips > 0) { Players.Add(new PlayerLogicViewModel { Id = playerModel.Id, Name = playerModel.Name, IsBot = playerModel.IsBot, Chips = playerModel.Chips, Bet = 0 }); } } #region initialize RoundPlayer values for (var i = 0; i < Players.Count; i++) { var player = Players.ElementAt(i); player.CurrentRoundPlayerId = await _roundPlayerService.CreateRoundPlayer(new RoundPlayerServiceCreateRoundPlayerViewModel { RoundId = newRoundId, PlayerId = player.Id, Cards = "[]" }); } #endregion var viewModel = new GameLogicViewModel(); viewModel.GameId = currentGameId; viewModel.CurrentRoundId = newRoundId; viewModel.Players = Players; return(viewModel); } catch (Exception ex) { Logger.WriteLogToFile(ex.Message, "GameLogicService", "StartNewGameRound"); } return(new GameLogicViewModel { GameId = Guid.Empty.ToString() }); }
public async Task <GameLogicViewModel> StartNewGameAuthentificated(string playerName, int numberOfBots, string userId) { try { var userData = await _playerService.RetrievePlayer(userId); if (userData.Chips == 0) { return(await StartNewGame(playerName, numberOfBots)); } /// var newGameId = await _gameService.CreateGame(new GameServiceCreateGameViewModel()); var newRoundId = await _roundService.CreateRound(new RoundServiceCreateRoundViewModel() { GameId = newGameId, RoundNumber = 1, Deck = (new DeckLogic()).Stringify() }); var players = new List <PlayerLogicViewModel> { new PlayerLogicViewModel { Id = await _playerService.CreatePlayer(new PlayerServiceCreatePlayerViewModel() { GameId = newGameId, Name = "Dealer", IsBot = true, Chips = 9000 }), Name = "Dealer", IsBot = true, Chips = 9000, Bet = 0 }, new PlayerLogicViewModel { Id = userId, Name = userData.Name, IsBot = false, Chips = userData.Chips, Bet = 0 } }; #region create Bots var listOfNames = new List <string>() { "James", "John", "Robert", "Michael", "William", "David", "Richard", "Charles", "Joseph", "Thomas", "Christopher", "Daniel", "Paul", "Mark", "Donald", }; var RAND = new Random(); foreach (var name in listOfNames) { if (name == playerName) { listOfNames.Remove(name); } } for (var i = 0; i < numberOfBots; i++) { var tmpIndex = RAND.Next(listOfNames.Count); var bot = new PlayerLogicViewModel { Id = await _playerService.CreatePlayer(new PlayerServiceCreatePlayerViewModel() { GameId = newGameId, Name = listOfNames[tmpIndex], IsBot = true, Chips = 100 }), Name = listOfNames[tmpIndex], IsBot = true, Chips = 100, Bet = 0 }; listOfNames.RemoveAt(tmpIndex); players.Add(bot); } #endregion #region initialize RoundPlayer values for (var i = 0; i < players.Count; i++) { var player = players.ElementAt(i); player.CurrentRoundPlayerId = await _roundPlayerService.CreateRoundPlayer(new RoundPlayerServiceCreateRoundPlayerViewModel { RoundId = newRoundId, PlayerId = player.Id, Cards = "[]" }); } #endregion var viewModel = new GameLogicViewModel(); viewModel.GameId = newGameId; viewModel.CurrentRoundId = newRoundId; viewModel.Players = players; return(viewModel); } catch (Exception ex) { Logger.WriteLogToFile(ex.Message, "GameLogicService", "StartNewGame"); } return(new GameLogicViewModel { GameId = Guid.Empty.ToString() }); }
public GamePlay() { InitializeComponent(); BindingContext = new GameLogicViewModel(); }