BC.Web.Controllers.GamesController.Join C# (CSharp) Method

Join() private method

private Join ( int id, GameModel model ) : IHttpActionResult
id int
model BC.Web.Models.GameModel
return IHttpActionResult
        public IHttpActionResult Join(int id, GameModel model)
        {
            // MAKE SURE YOU ARE NOT THE CREATOR OF THE GAME!
            var currentUserId = this.User.Identity.GetUserId();

            var game = this.data.Games
                .All()
                .Where(g => g.State == GameState.WaitingForOpponent && g.RedPlayerId != currentUserId)
                .FirstOrDefault();

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

            var bluePlayer = this.data.Users.Find(currentUserId);
            game.BluePlayerId = currentUserId;
            game.BluePlayer = bluePlayer;
            game.State = GameState.TurnBlue;
            this.data.SaveChanges();

            this.Guess(game.Id, new GuessModel { Number = model.Number });
            var joinGameResultModel = new JoinGameModel(game.Name);

            // Send notification to the creator of the game about new player Joining his game
            string notificationMessage = bluePlayer.UserName + " joined your game " + game.Name;
            SendNotification(game.Id, currentUserId, "GameJoined", notificationMessage);

            return Ok(joinGameResultModel);
        }