public IHttpActionResult CreateGame(CreateGameModel gameModel)
        {
            if(!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            if (gameModel.Number.ToString().Length != 4)
            {
                return this.BadRequest("Please enter number with 4 digits");
            }

            if (ContainsDuplicates(gameModel.Number))
            {
                return this.BadRequest("Your number should consist of 4 different digits");
            }

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

            var game = new Game
            {
                Name = gameModel.Name,
                RedPlayerId = userId,
                RedPlayerNumber = gameModel.Number,
                GameState = GameState.WaitingForOpponent,
                DateCreated = DateTime.Now,
                isFinished = false
            };

            var addedGame = this.ApplicationData.Games.Add(game);
            this.ApplicationData.SaveChanges();

            var gameModelToSend = new GameModel();

            gameModelToSend.Name = addedGame.Name;
            gameModelToSend.Id = addedGame.Id;
            gameModelToSend.Blue = "No blue player yet";
            gameModelToSend.Red = this.User.Identity.Name;
            gameModelToSend.GameState = GameState.WaitingForOpponent.ToString(); ;
            gameModelToSend.DateCreated = addedGame.DateCreated;

            return Created("api/games", gameModelToSend);
        }
        public IHttpActionResult JoinGame(int id, CreateGameModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            if (model.Number.ToString().Length != 4)
            {
                return this.BadRequest("Please enter number with 4 digits");
            }

            if (ContainsDuplicates(model.Number))
            {
                return this.BadRequest("Your number should consist of 4 different digits");
            }

            var gameToJoin = this.ApplicationData.Games.Find(id);
            if (gameToJoin == null)
            {
                return this.NotFound();
            }

            var currentPlayerId = this.User.Identity.GetUserId();
            if(gameToJoin.RedPlayerId == currentPlayerId)
            {
                return this.BadRequest("A game, created by a user, cannot be joined by the same user");
            }

            if(gameToJoin.BluePlayerId == currentPlayerId)
            {
                return this.BadRequest("You are already playing in this game");
            }

            gameToJoin.BluePlayerId = currentPlayerId;
            gameToJoin.BluePlayerNumber = model.Number;

            var generatedRandomNumber = random.Next(0, 2);
            if (generatedRandomNumber == 0)
            {
                gameToJoin.GameState = GameState.RedInTurn;
            }
            else
            {
                gameToJoin.GameState = GameState.BlueInTurn;
            }

            this.ApplicationData.SaveChanges();

            return Ok(new
            {
                result = string.Format(@"You joined game ""{0}""", gameToJoin.Name)
            });
        }