Exemple #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));
        }
Exemple #2
0
        public virtual HttpResponseMessage GetPlayers([FromUri] int gamingGroupId)
        {
            var results = _playerRetriever.GetAllPlayers(gamingGroupId);

            var playerIds = results.Select(x => x.Id).ToList();
            //--include the current player so we can attempt to get their email address as well
            var playerIdToRegisteredUserEmailAddressDictionary =
                _playerRetriever.GetRegisteredUserEmailAddresses(playerIds, CurrentUser);

            var playerSearchResultsMessage = new PlayersSearchResultsMessage();

            foreach (var player in results)
            {
                var playerSearchResultMessage = new PlayerSearchResultMessage
                {
                    Active   = player.Active,
                    PlayerId = player.Id,
                    CurrentNemesisPlayerId = player.NemesisId,
                    PlayerName             = player.Name,
                    NemeStatsUrl           = AbsoluteUrlBuilder.GetPlayerDetailsUrl(player.Id)
                };

                if (playerIdToRegisteredUserEmailAddressDictionary.ContainsKey(player.Id))
                {
                    playerSearchResultMessage.RegisteredUserGravatarUrl = UIHelper.BuildGravatarUrl(playerIdToRegisteredUserEmailAddressDictionary[player.Id]);
                }

                playerSearchResultsMessage.Players.Add(playerSearchResultMessage);
            }

            return(Request.CreateResponse(HttpStatusCode.OK, playerSearchResultsMessage));
        }
        public void Get_Returns_User_Information_For_The_Given_User()
        {
            var expectedUserInformation = new UserInformation();

            _autoMocker.Get <IUserRetriever>().Expect(mock => mock.RetrieveUserInformation(_applicationUser))
            .Return(expectedUserInformation);
            UserInformationMessage expectedUserInformationMessage = new UserInformationMessage
            {
                GamingGroups = new List <GamingGroupInfoForUserMessage>
                {
                    new GamingGroupInfoForUserMessage
                    {
                        GamingGroupId = 1
                    },
                    new GamingGroupInfoForUserMessage
                    {
                        GamingGroupId = 2
                    }
                },
                Players = new List <PlayerInfoForUserMessage>
                {
                    new PlayerInfoForUserMessage
                    {
                        PlayerId = 10
                    },
                    new PlayerInfoForUserMessage
                    {
                        PlayerId = 20
                    }
                }
            };

            _autoMocker.Get <ITransformer>().Expect(mock => mock.Transform <UserInformationMessage>(expectedUserInformation))
            .Return(expectedUserInformationMessage);
            _autoMocker.ClassUnderTest.CurrentUser = _applicationUser;

            var actualResponse = _autoMocker.ClassUnderTest.GetUserInformation(_applicationUser.Id);

            Assert.That(actualResponse.Content, Is.TypeOf(typeof(ObjectContent <UserInformationMessage>)));
            var content = actualResponse.Content as ObjectContent <UserInformationMessage>;
            var actualUserInformationMessage = content.Value as UserInformationMessage;

            Assert.That(actualUserInformationMessage, Is.SameAs(expectedUserInformationMessage));

            Assert.That(actualUserInformationMessage.GamingGroups[0].NemeStatsUrl,
                        Is.EqualTo(AbsoluteUrlBuilder.GetGamingGroupDetailsUrl(actualUserInformationMessage.GamingGroups[0]
                                                                               .GamingGroupId)));
            Assert.That(actualUserInformationMessage.GamingGroups[1].NemeStatsUrl,
                        Is.EqualTo(AbsoluteUrlBuilder.GetGamingGroupDetailsUrl(actualUserInformationMessage.GamingGroups[1]
                                                                               .GamingGroupId)));

            Assert.That(actualUserInformationMessage.Players[0].NemeStatsUrl,
                        Is.EqualTo(AbsoluteUrlBuilder.GetPlayerDetailsUrl(actualUserInformationMessage.Players[0]
                                                                          .PlayerId)));
            Assert.That(actualUserInformationMessage.Players[1].NemeStatsUrl,
                        Is.EqualTo(AbsoluteUrlBuilder.GetPlayerDetailsUrl(actualUserInformationMessage.Players[1]
                                                                          .PlayerId)));
        }
Exemple #4
0
        public virtual HttpResponseMessage GetUserInformation(string userId)
        {
            var userInformation        = _userRetriever.RetrieveUserInformation(CurrentUser);
            var userInformationMessage = _transformer.Transform <UserInformationMessage>(userInformation);

            userInformationMessage.GamingGroups.ForEach(x => x.NemeStatsUrl = AbsoluteUrlBuilder.GetGamingGroupDetailsUrl(x.GamingGroupId));
            userInformationMessage.Players.ForEach(x => x.NemeStatsUrl      = AbsoluteUrlBuilder.GetPlayerDetailsUrl(x.PlayerId));

            return(Request.CreateResponse(HttpStatusCode.OK, userInformationMessage));
        }
        public void ItReturnsThePlayerIdAndGamingGroupOfTheNewlyCreatedPlayer()
        {
            var expectedNemeStatsUrl = AbsoluteUrlBuilder.GetPlayerDetailsUrl(_expectedPlayer.Id);

            var actualResponse = _autoMocker.ClassUnderTest.SaveNewPlayer(new NewPlayerMessage(), _expectedGamingGroupId);

            Assert.That(actualResponse.Content, Is.TypeOf(typeof(ObjectContent <NewlyCreatedPlayerMessage>)));
            var content = actualResponse.Content as ObjectContent <NewlyCreatedPlayerMessage>;
            var newlyCreatedPlayerMessage = content.Value as NewlyCreatedPlayerMessage;

            Assert.That(newlyCreatedPlayerMessage.PlayerId, Is.EqualTo(_expectedPlayer.Id));
            Assert.That(newlyCreatedPlayerMessage.GamingGroupId, Is.EqualTo(_expectedGamingGroupId));
            Assert.That(newlyCreatedPlayerMessage.NemeStatsUrl, Is.EqualTo(expectedNemeStatsUrl));
        }
        public void It_Returns_The_Players()
        {
            var actualResults = _autoMocker.ClassUnderTest.GetPlayers(GAMING_GROUP_ID);

            var actualData = AssertThatApiAction.ReturnsThisTypeWithThisStatusCode <PlayersSearchResultsMessage>(actualResults, HttpStatusCode.OK);

            Assert.That(actualData.Players.Count, Is.EqualTo(1));
            var player = actualData.Players[0];

            Assert.That(player.PlayerId, Is.EqualTo(_expectedPlayer.Id));
            Assert.That(player.PlayerName, Is.EqualTo(_expectedPlayer.Name));
            Assert.That(player.Active, Is.EqualTo(_expectedPlayer.Active));
            Assert.That(player.CurrentNemesisPlayerId, Is.EqualTo(_expectedPlayer.NemesisId));
            Assert.That(player.NemeStatsUrl, Is.EqualTo(AbsoluteUrlBuilder.GetPlayerDetailsUrl(player.PlayerId)));
        }