Exemplo n.º 1
0
        public IHttpActionResult Status(GameInfoDataModel model)
        {
            var currentUserId = this.userIdProvider.GetUserId();
            var idAsGuid      = new Guid(model.GameId);

            var game = this.data.Games.All()
                       .Where(x => x.Id == idAsGuid)
                       .Select(x => new { x.FirstPlayerId, x.SecondPlayerId })
                       .FirstOrDefault();

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

            if (game.FirstPlayerId != currentUserId &&
                game.SecondPlayerId != currentUserId)
            {
                return(this.BadRequest("This is not your game!"));
            }

            var gameInfo = this.data.Games.All()
                           .Where(g => g.Id == idAsGuid)
                           .Select(GameInfoDataModel.FromGame)
                           .FirstOrDefault();

            return(Ok(gameInfo));
        }
Exemplo n.º 2
0
        public IHttpActionResult Create(GameInfoDataModel model)
        {
            var currentUserId = this.userIdProvider.GetUserId();

            var newGame = new Game
            {
                FirstPlayerId = currentUserId,
                GameName      = model.GameName
            };

            this.data.Games.Add(newGame);
            this.data.SaveChanges();

            return(Ok(newGame.Id));
        }
Exemplo n.º 3
0
        public IHttpActionResult Join(GameInfoDataModel model)
        {
            var idAsGuid = new Guid(model.GameId);

            var game = this.data.Games.All()
                       .Where(g => g.Id == idAsGuid)
                       .FirstOrDefault();

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

            var currentPlayer = this.data.Users.All()
                                .FirstOrDefault(u => u.UserName == this.User.Identity.Name);

            game.SecondPlayer = currentPlayer;
            game.State        = GameState.TurnX;
            this.data.SaveChanges();

            return(Ok(game.Id));
        }