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)); }
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)); }
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)); }