public IHttpActionResult JoinGame(JoinGameBindingModel model)
        {
            var game = this.Data.Games
                       .All()
                       .Where(g => g.Id.ToString() == model.GameId)
                       .FirstOrDefault();

            if (game == null)
            {
                return(this.NotFound());
            }

            var userId = this.User.Identity.GetUserId();

            if (game.PlayerOneId == userId)
            {
                return(this.BadRequest("You cannot join your own game."));
            }

            game.PlayerTwoId = userId;
            game.State       = GameState.TurnOne;
            this.Data.SaveChanges();

            return(this.Ok(game.Id));
        }
예제 #2
0
        public IHttpActionResult JoinGame(JoinGameBindingModel model)
        {
            var guidGameId = new Guid(model.GameId);
            var game       = this.Data.Games
                             .All()
                             .FirstOrDefault(x => x.Id == guidGameId);

            if (game == null)
            {
                return(this.NotFound());
            }

            var userId = this.userIdProvider.GetUserId();

            if (game.PlayerOneId == userId)
            {
                return(this.BadRequest("You can not join in your game!"));
            }

            game.PlayerTwoId = userId;
            game.State       = GameState.TurnOne;

            this.Data.SaveChanges();

            return(this.Ok(game.Id));
        }
예제 #3
0
        public IHttpActionResult JoinGame(JoinGameBindingModel model)
        {
            if (model == null)
            {
                return(this.BadRequest("You have to specify game id!"));
            }

            this._currentUserId = this._userIdProvider.GetUserId();
            var game = this._data.Games.Find(model.Id);

            if (this._currentUserId == game.FirstPlayerId)
            {
                return(this.BadRequest("You can't join your own game!"));
            }

            game.SecondPlayerId = _currentUserId;
            game.State          = GameState.FirstPlayerTurn;
            this._data.SaveChanges();

            JoinGameViewModel gameViewModel = new JoinGameViewModel()
            {
                Id               = game.Id,
                Name             = game.Name,
                FirstPlayerName  = game.FirstPlayer.UserName,
                SecondPlayerName = game.SecondPlayer.UserName,
                GameState        = GameState.FirstPlayerTurn.ToString(),
                Field            = game.Field
            };

            return(this.Ok(gameViewModel));
        }
        public IHttpActionResult JoinGame(JoinGameBindingModel model)
        {
            var guidGameId = new Guid(model.GameId);
            var game = Data.Games
                .All()
                .FirstOrDefault(x => x.Id == guidGameId);
            if (game == null)
            {
                return NotFound();
            }

            var userId = userIdProvider.GetUserId();
            if (game.PlayerOneId == userId)
            {
                return BadRequest("You can not join in your game!");
            }

            game.PlayerTwoId = userId;
            game.State = GameState.TurnOne;

            Data.SaveChanges();

            return Ok(game.Id);
        }