示例#1
0
        public IHttpActionResult Create(GameCreateDataModel model)
        {
            var currentUserId = this.userIdProvider.GetUserId();

            var redPlayer = this.data.Users.Find(currentUserId);

            var number = model.Number;

            if (!IsValudNumber(number))
            {
                return(BadRequest("Invalid number"));
            }

            Game newGame = new Game
            {
                RedPlayerId     = currentUserId,
                RedPlayer       = redPlayer,
                Name            = model.Name,
                RedPlayerNumber = number,
                GameState       = BullsAndCows.Models.GameState.WaitingForOpponent,
                DateCreated     = DateTime.Now
            };

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

            GameViewModel result = new GameViewModel(newGame);

            return(Ok(result));
        }
        public IHttpActionResult CreateGame(GameCreateDataModel gameModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!this.IsValidNumber(gameModel.Number))
            {
                return(BadRequest("Number is not valid"));
            }

            var userId = GetCurrentUserId();

            var user = GetCurrentUser(userId);

            var game = new Game
            {
                Name                  = gameModel.Name,
                GameState             = GameState.WaitingForOpponent,
                DateCreated           = DateTime.Now,
                FirstUserId           = userId,
                FirstUser             = user,
                FirstUserSecretNumber = gameModel.Number
            };

            this.Data.Games.Add(game);
            this.Data.SaveChanges();

            var gameDataToReturn = new CreateGameResponseDataModel(game);

            return(Created(string.Format("api/games/{0}", gameDataToReturn.Id), gameDataToReturn));
        }