Пример #1
0
        public virtual HttpResponseMessage SaveNewPlayer([FromBody] NewPlayerMessage newPlayerMessage, [FromUri] int gamingGroupId)
        {
            var requestedPlayer = new CreatePlayerRequest
            {
                Name               = newPlayerMessage.PlayerName,
                GamingGroupId      = newPlayerMessage.GamingGroupId,
                PlayerEmailAddress = newPlayerMessage.PlayerEmailAddress
            };

            Player newPlayer;

            try
            {
                newPlayer = _playerSaver.CreatePlayer(requestedPlayer, CurrentUser);
            }
            catch (PlayerAlreadyExistsException exception)
            {
                exception.ErrorSubCode = 1;
                throw;
            }
            catch (PlayerWithThisEmailAlreadyExistsException exception)
            {
                exception.ErrorSubCode = 2;
                throw;
            }

            var newlyCreatedPlayerMessage = new NewlyCreatedPlayerMessage
            {
                PlayerId      = newPlayer.Id,
                GamingGroupId = newPlayer.GamingGroupId,
                NemeStatsUrl  = AbsoluteUrlBuilder.GetPlayerDetailsUrl(newPlayer.Id)
            };

            return(Request.CreateResponse(HttpStatusCode.OK, newlyCreatedPlayerMessage));
        }
Пример #2
0
        private Player AddUserToGamingGroupAsPlayer(ApplicationUser currentUser)
        {
            var createPlayerRequest = new CreatePlayerRequest
            {
                Name = currentUser.UserName
            };

            return(_playerSaver.CreatePlayer(createPlayerRequest, currentUser, true));
        }
Пример #3
0
        public virtual ActionResult Save(SavePlayedGameRequest request, ApplicationUser currentUser)
        {
            if (ModelState.IsValid)
            {
                int?resultId;
                if (request.EditMode && request.PlayedGameId.HasValue)
                {
                    _playedGameSaver.UpdatePlayedGame(
                        _mapperFactory.GetMapper <SavePlayedGameRequest, UpdatedGame>().Map(request),
                        TransactionSource.WebApplication, currentUser);

                    resultId = request.PlayedGameId;
                }
                else
                {
                    if (request.GameDefinitionId == null)
                    {
                        if (string.IsNullOrEmpty(request.GameDefinitionName))
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                        }

                        request.GameDefinitionId = _gameDefinitionSaver.CreateGameDefinition(new CreateGameDefinitionRequest
                        {
                            Name          = request.GameDefinitionName,
                            GamingGroupId = request.GameDefinitionId ?? currentUser.CurrentGamingGroupId,
                            BoardGameGeekGameDefinitionId = request.BoardGameGeekGameDefinitionId
                        }, currentUser).Id;
                    }

                    foreach (var newPlayer in request.PlayerRanks.Where(p => !p.PlayerId.HasValue))
                    {
                        newPlayer.PlayerId = _playerSaver.CreatePlayer(new CreatePlayerRequest
                        {
                            GamingGroupId = currentUser.CurrentGamingGroupId,
                            Name          = newPlayer.PlayerName
                        }, currentUser).Id;
                    }


                    resultId =
                        _playedGameSaver.CreatePlayedGame(
                            _mapperFactory.GetMapper <SavePlayedGameRequest, NewlyCompletedGame>().Map(request),
                            TransactionSource.WebApplication, currentUser).Id;
                }


                return(Json(new { success = true, playedGameId = resultId }));
            }

            return(Json(new { success = false, errors = ModelState.Errors() }, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        public virtual HttpResponseMessage SaveNewPlayer([FromBody] NewPlayerMessage newPlayerMessage, [FromUri] int gamingGroupId)
        {
            var requestedPlayer = new CreatePlayerRequest
            {
                Name          = newPlayerMessage.PlayerName,
                GamingGroupId = newPlayerMessage.GamingGroupId
            };

            var actualNewlyCreatedPlayer = playerSaver.CreatePlayer(requestedPlayer, CurrentUser);

            var newlyCreatedPlayerMessage = new NewlyCreatedPlayerMessage
            {
                PlayerId      = actualNewlyCreatedPlayer.Id,
                GamingGroupId = actualNewlyCreatedPlayer.GamingGroupId
            };

            return(Request.CreateResponse(HttpStatusCode.OK, newlyCreatedPlayerMessage));
        }
Пример #5
0
        public virtual ActionResult Save(CreatePlayerRequest createPlayerRequest, ApplicationUser currentUser)
        {
            if (!Request.IsAjaxRequest())
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    createPlayerRequest.Name          = createPlayerRequest.Name.Trim();
                    createPlayerRequest.GamingGroupId = currentUser.CurrentGamingGroupId;
                    var player = playerSaver.CreatePlayer(createPlayerRequest, currentUser);
                    return(Json(player, JsonRequestBehavior.AllowGet));
                }
                catch (PlayerAlreadyExistsException playerAlreadyExistsException)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.Conflict, playerAlreadyExistsException.Message));
                }
            }

            return(new HttpStatusCodeResult(HttpStatusCode.NotModified));
        }