private void AsPlayer(Entities.Game game, Entities.User user, String passphrase, Entities.JoinResponse response, Boolean wasWaiting) { if (game.IsCurrentPlayer(user.UserId) == false) { if (_validatePassphrase.Execute(game, passphrase) == false) { response.Result |= Entities.Enums.Game.JoinResponseCode.BadPassphrase; } else if (game.IsFull()) { response.Result |= Entities.Enums.Game.JoinResponseCode.FullGame; } else { Boolean successful = _joinGame.Execute(game, user, Entities.Enums.GamePlayerType.Player); if (successful == false) { response.Result |= Entities.Enums.Game.JoinResponseCode.FullGame; } else { if (wasWaiting && !game.IsWaiting()) { Entities.User newCommander = game.NextCommander(null); if (newCommander != null) { if (_startRound.Execute(game, game.NextCommander(null)) == true) { response.Result |= Entities.Enums.Game.JoinResponseCode.NewRoundStart; } } else { response.Result |= Entities.Enums.Game.JoinResponseCode.WaitingOnWinnerSelection; } } } } } else { response.Result |= Entities.Enums.Game.JoinResponseCode.SuccessfulAlreadyPlayer; } if (response.Result.HasFlag(Entities.Enums.Game.JoinResponseCode.BadPassphrase) == false && response.Result.HasFlag(Entities.Enums.Game.JoinResponseCode.FullGame) == false) { response.Game = game; } }