Exemplo n.º 1
0
        public async Task PlayerController_POST_CreatePlayer_PlayerIdIsReturned()
        {
            // 1. Arrange
            HttpClient client = this.WebApplicationFactory.CreateClient();

            RegisterPlayerRequest registerPlayerRequest = TestData.RegisterPlayerRequest;
            String        uri     = "api/players/";
            StringContent content = Helpers.CreateStringContent(registerPlayerRequest);

            client.DefaultRequestHeaders.Add("api-version", "2.0");
            // 2. Act
            HttpResponseMessage response = await client.PostAsync(uri, content, CancellationToken.None);

            // 3. Assert
            response.StatusCode.ShouldBe(HttpStatusCode.Created);

            String responseAsJson = await response.Content.ReadAsStringAsync();

            responseAsJson.ShouldNotBeNullOrEmpty();

            RegisterPlayerResponse responseObject = JsonConvert.DeserializeObject <RegisterPlayerResponse>(responseAsJson);

            responseObject.ShouldNotBeNull();
            responseObject.PlayerId.ShouldNotBe(Guid.Empty);
        }
Exemplo n.º 2
0
        public ContentResult edit(RegisterPlayerRequest request)
        {
            string msg  = string.Empty;
            var    flag = _memberService.EditMemberPlayer(request, UserContext.WebUserContext, out msg);

            return(Result <string>(flag, msg));
        }
Exemplo n.º 3
0
        public async Task RegisterPlayer(String golfClubName, TableRow tableRow)
        {
            String clientToken = await this.GetToken(TokenType.Client, "golfhandicap.testdatagenerator", "golfhandicap.testdatagenerator").ConfigureAwait(false);;

            Func <String, String> baseAddressResolver = (address) => { return($"http://127.0.0.1:{this.ManagementAPIPort}"); };
            HttpClient            httpClient          = new HttpClient();
            IPlayerClient         playerClient        = new PlayerClient(baseAddressResolver, httpClient);

            List <GetGolfClubResponse> golfClubList = await playerClient.GetGolfClubList(clientToken, Guid.Empty, CancellationToken.None).ConfigureAwait(false);;

            GetGolfClubResponse golfClub = golfClubList.SingleOrDefault(g => g.Name == golfClubName);

            if (golfClub != null)
            {
                DateTime dateOfBirth = DateTime.Now.AddYears(Int32.Parse(tableRow["Age"]) * -1).AddDays(-1);

                RegisterPlayerRequest registerPlayerRequest = new RegisterPlayerRequest
                {
                    DateOfBirth   = dateOfBirth,
                    EmailAddress  = tableRow["EmailAddress"],
                    Gender        = tableRow["Gender"],
                    ExactHandicap = Decimal.Parse(tableRow["ExactHandicap"]),
                    FamilyName    = tableRow["FamilyName"],
                    GivenName     = tableRow["GivenName"],
                };

                var registerPlayerResponse = await playerClient.RegisterPlayer(registerPlayerRequest, CancellationToken.None).ConfigureAwait(false);

                await playerClient.RequestClubMembership(clientToken, registerPlayerResponse.PlayerId, golfClub.Id, CancellationToken.None).ConfigureAwait(false);
            }
        }
        public async Task GivenTheFollowingPlayersHaveRegistered(Table table)
        {
            foreach (TableRow tableRow in table.Rows)
            {
                Int32 age = Int32.Parse(tableRow["Age"]);

                RegisterPlayerRequest registerPlayerRequest = new RegisterPlayerRequest
                {
                    DateOfBirth   = DateTime.Now.AddYears(age * -1),
                    FamilyName    = tableRow["FamilyName"],
                    GivenName     = tableRow["GivenName"],
                    MiddleName    = tableRow["MiddleName"],
                    EmailAddress  = tableRow["EmailAddress"],
                    ExactHandicap = Decimal.Parse(tableRow["ExactHandicap"]),
                    Gender        = tableRow["Gender"],
                };

                this.TestingContext.RegisterPlayerRequests.Add(tableRow["PlayerNumber"], registerPlayerRequest);

                RegisterPlayerResponse registerPlayerResponse =
                    await this.TestingContext.DockerHelper.PlayerClient.RegisterPlayer(registerPlayerRequest, CancellationToken.None).ConfigureAwait(false);

                this.TestingContext.RegisterPlayerResponses.Add(tableRow["PlayerNumber"], registerPlayerResponse);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Registers the player.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        public async Task <RegisterPlayerResponse> RegisterPlayer(RegisterPlayerRequest request,
                                                                  CancellationToken cancellationToken)
        {
            RegisterPlayerResponse response = null;

            String requestUri = $"{this.BaseAddress}/api/Player";

            try
            {
                String requestSerialised = JsonConvert.SerializeObject(request);

                StringContent httpContent = new StringContent(requestSerialised, Encoding.UTF8, "application/json");

                // Make the Http Call here
                HttpResponseMessage httpResponse = await this.HttpClient.PostAsync(requestUri, httpContent, cancellationToken);

                // Process the response
                String content = await this.HandleResponse(httpResponse, cancellationToken);

                // call was successful so now deserialise the body to the response object
                response = JsonConvert.DeserializeObject <RegisterPlayerResponse>(content);
            }
            catch (Exception ex)
            {
                // An exception has occurred, add some additional information to the message
                Exception exception = new Exception($"Error creating the new player {request.GivenName} {request.FamilyName}.", ex);

                throw exception;
            }

            return(response);
        }
        public async Task GivenIAmLoggedInAsPlayerNumber(String playerNumber)
        {
            RegisterPlayerRequest registerPlayerRequest = this.TestingContext.GetRegisterPlayerRequest(playerNumber);

            this.TestingContext.PlayerToken = await this.TestingContext.DockerHelper.GetToken(TokenType.Password,
                                                                                              "golfhandicap.mobile",
                                                                                              "golfhandicap.mobile",
                                                                                              registerPlayerRequest.EmailAddress,
                                                                                              "123456").ConfigureAwait(false);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Creates the player datav2.
        /// </summary>
        /// <param name="testDataGenerator">The test data generator.</param>
        /// <param name="numberPlayersPerClub">The number players per club.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        private static async Task CreatePlayerDatav2(ITestDataGenerator testDataGenerator,
                                                     Int32 lastClub,
                                                     Int32 numberPlayersPerClub,
                                                     CancellationToken cancellationToken)
        {
            Int32 clubCounter = lastClub + 1;

            foreach (GolfClubDetails golfClubDetails in Program.GolfClubs)
            {
                for (Int32 i = 0; i < numberPlayersPerClub; i++)
                {
                    RegisterPlayerRequest registerPlayerRequest = new RegisterPlayerRequest
                    {
                        DateOfBirth   = DateTime.Now.AddYears(-30),
                        EmailAddress  = $"player{i}.{clubCounter}@testplayer.co.uk",
                        ExactHandicap = i,
                        GivenName     = $"Club {clubCounter}",
                        Gender        = "M",
                        FamilyName    = $"Test Player {i}",
                        MiddleName    = null
                    };

                    RegisterPlayerResponse registerPlayerResponse = await testDataGenerator.RegisterPlayer(registerPlayerRequest, cancellationToken);

                    Console.WriteLine($"Created Player {registerPlayerRequest.GivenName} {registerPlayerRequest.FamilyName}");

                    //String token = await testDataGenerator.GetToken(TokenType.Password,
                    //                                                "developerClient",
                    //                                                "developerClient",
                    //                                                registerPlayerRequest.EmailAddress,
                    //                                                "123456",
                    //                                                new List<String>
                    //                                                {
                    //                                                    "openid",
                    //                                                    "profile",
                    //                                                    "managementapi"
                    //                                                });

                    await testDataGenerator.RequestClubMembership(Program.accessToken, registerPlayerResponse.PlayerId, golfClubDetails.GolfClubId, cancellationToken);

                    Console.WriteLine($"Player {registerPlayerRequest.GivenName} {registerPlayerRequest.FamilyName} membership requested");

                    Program.Players.Add(new PlayerDetails
                    {
                        GolfClubId      = golfClubDetails.GolfClubId,
                        PlayerId        = registerPlayerResponse.PlayerId,
                        PlayingHandicap = Convert.ToInt32(registerPlayerRequest.ExactHandicap),                     // TODO: Rounding
                        EmailAddress    = registerPlayerRequest.EmailAddress
                    });
                }

                clubCounter++;
            }
        }
Exemplo n.º 8
0
    public IEnumerator RegisterPlayer(Action <RegisterPlayerResponse> onRegisterPlayerResponse,
                                      Action <string> onError)
    {
        RegisterPlayerRequest request = new RegisterPlayerRequest();

        yield return(SyncPost(
                         request,
                         responseText =>
        {
            onRegisterPlayerResponse(RegisterPlayerResponse.FromJSON(responseText));
        },
                         onError
                         ));
    }
Exemplo n.º 9
0
        public async Task <IActionResult> CreatePlayer([FromBody] RegisterPlayerRequest request,
                                                       CancellationToken cancellationToken)
        {
            Guid playerId = Guid.NewGuid();

            // Create the command
            RegisterPlayerCommand command = RegisterPlayerCommand.Create(playerId, request);

            // Route the command
            await this.CommandRouter.Route(command, cancellationToken);

            // return the result
            return(this.Created($"{PlayerController.ControllerRoute}/{playerId}", new RegisterPlayerResponse
            {
                PlayerId = playerId
            }));
        }
Exemplo n.º 10
0
        public JsonResult registerplayer(RegisterPlayerRequest request)
        {
            var    res = new Result <string>();
            string msg = string.Empty;

            res.flag = _memberService.RegisterMemberPlayer(request, out msg);
            if (res.flag)
            {
                res.flag = true;
                res.msg  = "/player/player/index";
            }
            else
            {
                res.msg  = msg;
                res.flag = false;
            }
            return(Json(res, JsonRequestBehavior.DenyGet));
        }
Exemplo n.º 11
0
        public void GivenIRegisterTheFollowingDetailsForAPlayer(Table table)
        {
            TableRow tableRow = table.Rows.Single();

            RegisterPlayerRequest registerPlayerRequest = new RegisterPlayerRequest
            {
                DateOfBirth   = DateTime.ParseExact(tableRow["DateOfBirth"], "yyyy-MM-dd", null),
                FamilyName    = tableRow["FamilyName"],
                GivenName     = tableRow["GivenName"],
                MiddleName    = tableRow["MiddleName"],
                EmailAddress  = tableRow["EmailAddress"],
                ExactHandicap = Decimal.Parse(tableRow["ExactHandicap"]),
                Gender        = tableRow["Gender"]
            };

            this.TestingContext.RegisterPlayerRequest = registerPlayerRequest;
            this.TestingContext.RegisterPlayerRequests.Add(tableRow["PlayerNumber"], registerPlayerRequest);
        }
        /// <summary>
        /// Registers the player.
        /// </summary>
        /// <param name="viewModel">The view model.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        public async Task RegisterPlayer(RegistrationViewModel viewModel,
                                         CancellationToken cancellationToken)
        {
            // Translate the view model into the api request
            RegisterPlayerRequest apiRequest = new RegisterPlayerRequest
            {
                DateOfBirth   = viewModel.DateOfBirth,
                Gender        = viewModel.Gender == 0 ? "M" : "F",
                EmailAddress  = viewModel.EmailAddress,
                MiddleName    = viewModel.MiddleName,
                ExactHandicap = decimal.Parse(viewModel.ExactHandicap),
                FamilyName    = viewModel.LastName,
                GivenName     = viewModel.FirstName
            };

            RegisterPlayerResponse apiResponse = await this.PlayerClient.RegisterPlayer(apiRequest, cancellationToken);

            // Set the result in the view model
            viewModel.PlayerId = apiResponse.PlayerId;
        }
        public async Task GivenTheFollowingPlayersAreClubMembersOfTheFollowingGolfClubs(Table table)
        {
            foreach (TableRow tableRow in table.Rows)
            {
                RegisterPlayerRequest registerPlayerRequest = this.TestingContext.GetRegisterPlayerRequest(tableRow["PlayerNumber"]);

                RegisterPlayerResponse registerPlayerResponse = this.TestingContext.GetRegisterPlayerResponse(tableRow["PlayerNumber"]);

                CreateGolfClubResponse golfClubResponse = this.TestingContext.GetCreateGolfClubResponse(tableRow["GolfClubNumber"]);

                this.TestingContext.PlayerToken = await this.TestingContext.DockerHelper.GetToken(TokenType.Password,
                                                                                                  "golfhandicap.mobile",
                                                                                                  "golfhandicap.mobile",
                                                                                                  registerPlayerRequest.EmailAddress,
                                                                                                  "123456").ConfigureAwait(false);

                await this.TestingContext.DockerHelper.PlayerClient.RequestClubMembership(this.TestingContext.PlayerToken,
                                                                                          registerPlayerResponse.PlayerId,
                                                                                          golfClubResponse.GolfClubId,
                                                                                          CancellationToken.None).ConfigureAwait(false);
            }
        }
        public async Task <IActionResult> PostPlayer([FromBody] RegisterPlayerRequest request,
                                                     CancellationToken cancellationToken)
        {
            // create a player
            Player player = new Player
            {
                PlayerId      = Guid.NewGuid(),
                LastName      = request.LastName,
                FirstName     = request.FirstName,
                DateOfBirth   = request.DateOfBirth,
                EmailAddress  = request.EmailAddress,
                ExactHandicap = request.ExactHandicap,
                Gender        = request.Gender,
                MiddleName    = request.MiddleName
            };

            // create a user
            RegisteredUser user = new RegisteredUser
            {
                EmailAddress = request.EmailAddress,
                Password     = "******",
                UserId       = Guid.NewGuid()
            };

            // Add to mock database
            using (MockDatabaseDbContext context = this.MockDatabaseDbContextResolver())
            {
                await context.RegisteredUsers.AddAsync(user, cancellationToken);

                await context.Players.AddAsync(player, cancellationToken);

                await context.SaveChangesAsync(cancellationToken);
            }

            return(this.Ok(new RegisterPlayerResponse
            {
                PlayerId = player.PlayerId
            }));
        }
Exemplo n.º 15
0
        public async Task RegisterPlayerAsync(RegisterPlayerRequest registerPlayerRequest)
        {
            var alreadyExists = _gamePlays.Exists(ga => ga.HubConnectionId == Context.ConnectionId);

            if (alreadyExists)
            {
                return;
            }

            var gamePlay = new GamePlay
            {
                HubConnectionId = Context.ConnectionId,
                Game            = registerPlayerRequest.Game,
                Player          = registerPlayerRequest.Player,
                CardPlayed      = new Card()
            };

            _gamePlays.Add(gamePlay);

            await Groups.AddToGroupAsync(Context.ConnectionId, registerPlayerRequest.Game.Id);

            await UpdateGame(gamePlay.Game.Id);
        }
Exemplo n.º 16
0
 /// <summary>
 /// Gets the add measured course to club request.
 /// </summary>
 /// <param name="playerId">The player identifier.</param>
 /// <param name="registerPlayerRequest">The register player request.</param>
 /// <param name="commandId">The command identifier.</param>
 /// <value>
 /// The add measured course to club request.
 /// </value>
 private RegisterPlayerCommand(Guid playerId, RegisterPlayerRequest registerPlayerRequest, Guid commandId) : base(commandId)
 {
     this.PlayerId = playerId;
     this.RegisterPlayerRequest = registerPlayerRequest;
 }
Exemplo n.º 17
0
 /// <summary>
 /// Creates this instance.
 /// </summary>
 /// <param name="playerId">The player identifier.</param>
 /// <param name="registerPlayerRequest">The register player request.</param>
 /// <returns></returns>
 public static RegisterPlayerCommand Create(Guid playerId, RegisterPlayerRequest registerPlayerRequest)
 {
     return(new RegisterPlayerCommand(playerId, registerPlayerRequest, Guid.NewGuid()));
 }
 /// <summary>
 /// Registers the player.
 /// </summary>
 /// <param name="registerPlayerRequest">The register player request.</param>
 /// <param name="cancellationToken">The cancellation token.</param>
 /// <returns></returns>
 public async Task <RegisterPlayerResponse> RegisterPlayer(RegisterPlayerRequest registerPlayerRequest,
                                                           CancellationToken cancellationToken)
 {
     return(await this.PlayerClient.RegisterPlayer(registerPlayerRequest, cancellationToken));
 }