public IActionResult JoinGame([FromBody] GameToFindModel gameToFindModel) { var game = gameDataAccess.GetGame(gameToFindModel.GameID); var user = userGetter.GetUserFromClaims(HttpContext); User gamePlayer = userDataAccess.GetUser(user.UserID); if (gamePlayer.ID == game.PlayerBlackID || gamePlayer.ID == game.PlayerWhiteID) { return(Ok("You have already joined the game")); } if (game.PlayerWhiteID != null && game.PlayerBlackID != null) { return(BadRequest("Both seats in the game are taken")); } //if(game.PlayerWhiteID == null) //{ // gameDataAccess.ChangePlayers(game.ID, gamePlayer, game.PlayerBlack); //}else if(game.PlayerBlackID == null) //{ // gameDataAccess.ChangePlayers(game.ID, game.PlayerWhite, gamePlayer); //} GamePresentationModel gameModel = ViewModelMapper.MapGameToPresentation(game); return(Ok(gameModel)); }
public static GamePresentationModel MapGameToPresentation(Game game) { UserDataAccess userDataAccess = new UserDataAccess(); GamePresentationModel gameModel = new GamePresentationModel() { GameID = game.ID, PlayerWhite = game.PlayerWhiteID == null ? null : userDataAccess.GetUser((int)game.PlayerWhiteID).Name, PlayerBlack = game.PlayerBlackID == null ? null : userDataAccess.GetUser((int)game.PlayerBlackID).Name, MovesList = game.MovesList, GameTime = game.GameTime, TimeGain = game.TimeGain, Date = game.FinishedDate }; return(gameModel); }
public IActionResult GetGame(int?id) { if (id == null) { return(BadRequest("No such game found")); } var game = gameDataAccess.GetGame((int)id); if (game == null) { return(BadRequest("No such game found")); } GamePresentationModel gameModel = ViewModelMapper.MapGameToPresentation(game); return(Ok(gameModel)); }
public IActionResult QuitGame([FromBody] GameToFindModel gameToFindModel) { var game = gameDataAccess.GetGame(gameToFindModel.GameID); var user = userGetter.GetUserFromClaims(HttpContext); User gamePlayer = userDataAccess.GetUser(user.UserID); if (game.PlayerWhiteID != gamePlayer.ID && game.PlayerBlackID != gamePlayer.ID) { return(BadRequest(new { message = "Can't quit a game u are not in" })); } if (game.PlayerWhiteID == gamePlayer.ID) { gameDataAccess.ChangePlayers(game.ID, null, game.PlayerBlack); } else if (game.PlayerBlackID == gamePlayer.ID) { gameDataAccess.ChangePlayers(game.ID, game.PlayerWhite, null); } GamePresentationModel gameModel = ViewModelMapper.MapGameToPresentation(game); return(Ok(gameModel)); }