Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }