public GameManagementWindow(GameManagementViewModel viewModel) { InitializeComponent(); DataContext = viewModel; viewModel.CloseAction = Close; }
public IActionResult EditGame(int gameId) { Game?game = gamesTable.GetGameById(gameId); if (game is null || game.IsRemoved) { return(RedirectToAction("GameNotFound", "ErrorPage")); } User user = usersTable.GetUserByEmail(User.Identity.Name !) !; ViewBag.User = user; ViewData["layout"] = "~/Views/Shared/_AuthorizedLayout.cshtml"; if (!user.IsAdmin) { return(RedirectToAction("AccessDenied", "ErrorPage")); } usersTable.SetCurrentlyEditedGame(user, game.Id); viewModel = new GameManagementViewModel { Game = game, Genres = genresTable.GetAllGenres(), Features = featuresTable.GetAllFeatures() }; return(View(viewModel)); }
public async Task <GameManagementViewModel> AddGame([FromBody] GameManagementModel model) { var user = User.Identity.Name; var entity = await _service.CreateGameAsync(model, user); GameManagementViewModel viewModel = entity.ToViewModel(); games.Add(viewModel); await _hubContext.Clients.All.GameAdded(viewModel); return(viewModel); }
public async Task GameJoin(Guid gameUid, string player, int playerNum) { GameManagementViewModel persGame = await _service.GetGameViewByUidAsync(gameUid); var game = GameStateManager.Instance.GameJoin(Context.ConnectionId, gameUid, player, playerNum, persGame); await Groups.AddToGroupAsync(Context.ConnectionId, gameUid.ToString()); await Clients.Group(gameUid.ToString()).GamePlayerJoin(gameUid, game?.Player1, game?.Player2); if (game.Player1 != null && game.Player2 != null) { await Clients.Group(gameUid.ToString()).GameStart(game.ToShortModel()); } }
public IActionResult AddGame() { User user = usersTable.GetUserByEmail(User.Identity.Name !) !; ViewBag.User = user; ViewData["layout"] = "~/Views/Shared/_AuthorizedLayout.cshtml"; if (!user.IsAdmin) { return(RedirectToAction("AccessDenied", "ErrorPage")); } viewModel = new GameManagementViewModel { Genres = genresTable.GetAllGenres(), Features = featuresTable.GetAllFeatures() }; return(View(viewModel)); }
public async Task <IActionResult> JoinGame(Guid gameUid, [FromBody] GameManagementModel model) { try { var game = await _service.JoinAsync(gameUid, User.Identity.Name); GameManagementViewModel viewModel = game.ToViewModel(); await _hubContext.Clients.All.GameJoined(viewModel); return(Ok(viewModel)); } catch (ArgumentNullException ex) { return(NotFound(ex.Message)); } catch (GameFullException ex) { return(BadRequest(ex.Message)); } }
public void AddGame() { GameListEntry newGame = new GameListEntry(); // Create and show GameManagement view GameManagement gameManagement = new GameManagement(newGame); GameManagementViewModel viewModel = new GameManagementViewModel(gameManagement); GameManagementWindow window = new GameManagementWindow(viewModel); // Result is true if save button is pressed if (window.ShowDialog() == true) { if (_database.AddGame(newGame.ToDatabaseEntry())) { _games.Add(newGame); } else { MessageBox.Show("Failed to add game to database", "Data Error", MessageBoxButton.OK, MessageBoxImage.Error); } } }
public void EditGame(GameListEntry entry) { // Copy entry in case of user cancel GameListEntry newEntry = new GameListEntry(entry); // Create and show GameManagement view GameManagement gameManagement = new GameManagement(newEntry); GameManagementViewModel viewModel = new GameManagementViewModel(gameManagement); GameManagementWindow window = new GameManagementWindow(viewModel); // Result is true if save button is pressed if (window.ShowDialog() == true) { if (_database.EditGame(entry.Name, newEntry.ToDatabaseEntry())) { entry.Copy(newEntry); } else { MessageBox.Show("Failed to update game in database", "Data Error", MessageBoxButton.OK, MessageBoxImage.Error); } } }
/// <summary> /// Jons player to a game /// </summary> /// <param name="connectionId">SignarR connection id</param> /// <param name="gameUid">Uid of the game</param> /// <param name="player"></param> /// <param name="playerNum"></param> /// <param name="persGame">Game stored in the DB with the givven game Uid</param> /// <returns></returns> public GameModel GameJoin(string connectionId, Guid gameUid, string player, int playerNum, GameManagementViewModel persGame) { games.TryGetValue(gameUid, out GameModel game); if (game == null) { game = new GameModel(persGame.PlayerSize ?? 8, persGame.Size, persGame.Size) { GameUid = gameUid, Level = persGame?.GameLevel ?? 1, Size = persGame?.Size ?? 800 }; games[gameUid] = game; } var p = new Player(playerNum, game.ElementSize) { Name = player, ConnectionId = connectionId, }; lock (_myLock) { if (playerNum == 1) { game.Player1 = p; } else { game.Player2 = p; } } return(game); }