public Task GameLobbyStartGame(long gameLobbyID) { return(Task.Run(() => { var gameLobby = gameLobbyService.GetGameLobby(gameLobbyID); if (gameLobby == null) { return; } gameLobby.UseLobbyLock(() => { if (gameLobby.HasUser(Context.User)) { var gameStarted = gameLobby.StartGame(OnEndTurn); if (!gameStarted) { return; } Parallel.ForEach(gameLobby.GetUsers(), (user) => { var connection = userConnectionsService.GameConnectionService.GetConnection(user); var gameState = gameLobby.GameLogicController.GetGameState(user); var apiObject = new GameLobbyStartGame { GameState = new GetGameState(gameState) }; Clients.Client(connection).GameLobbyStartGame(apiObject); }); } }); })); }
public static Task GameLobbyStartGame(this IClientProxy hubConnection, GameLobbyStartGame apiObject) { return(hubConnection.SendAsync(GameHubApiKeys.GameLobbyStartGame, apiObject)); }