public IHttpActionResult Get(int id) { var game = this.Data.Games.Find(id); if (game == null) { return(this.BadRequest("Game with such Id does not exist")); } var userId = this.UserIdentityProvider.GetUserId(); if (game.FirstPlayerId != userId && game.SecondPlayerId != userId) { return(this.BadRequest("This is not your game")); } if (game.GameState == GameState.WaitingForOpponent) { return(this.BadRequest("The game has not started")); } if (game.GameState == GameState.Finished) { return(this.BadRequest("The game has finished")); } var model = new GameDetailsDataModel(game, game.FirstPlayerId == userId); return(this.Ok(model)); }
public IHttpActionResult Details(int id) { var game = this.data.Games.Find(id); if (game == null || game.GameState == 0) { return(NotFound()); } var gameModel = new GameDetailsDataModel(game); gameModel.YourColor = this.User.Identity.GetUserName() == gameModel.Red ? "Red" : "Blue"; return(Ok(gameModel)); }
public IHttpActionResult GetGameDetails(int id) { var game = this.Data.Games .All() .Where(g => g.GameState != GameState.WaitingForOpponent && g.GameState != GameState.Finished) .FirstOrDefault(g => g.Id == id); if (game == null) { return(NotFound()); } var currentUserId = this.GetCurrentUserId(); var currentUserSecretNumber = game.FirstUserId == currentUserId ? game.FirstUserSecretNumber : game.SecondUserSecretNumber; var currentUserColor = game.FirstUserId == currentUserId ? "Red" : "Blue"; var currentUserGuesses = this.Data.Guesses .All() .Where(guess => guess.UserId == currentUserId) .Select(GuessDataModel.FromGuess) .ToList(); var opponentGuess = this.Data.Guesses .All() .Where(guess => guess.UserId != currentUserId) .Select(GuessDataModel.FromGuess) .ToList(); var gameDetails = new GameDetailsDataModel(game); gameDetails.YourNumber = currentUserSecretNumber; gameDetails.YourGuesses = currentUserGuesses; gameDetails.OpponentGuesses = opponentGuess; gameDetails.YourColor = currentUserColor; return(Ok(gameDetails)); }