Пример #1
0
        public async Task <IActionResult> GetPlayer([FromRoute] Guid playerId,
                                                    [FromQuery] Boolean includeMemberships,
                                                    [FromQuery] Boolean includeTournamentSignups,
                                                    CancellationToken cancellationToken)
        {
            // Get the Player Id claim from the user
            Claim playerIdClaim = ClaimsHelper.GetUserClaim(this.User, CustomClaims.PlayerId, playerId.ToString());

            Boolean validationResult = ClaimsHelper.ValidateRouteParameter(playerId, playerIdClaim);

            if (validationResult == false)
            {
                return(this.Forbid());
            }

            GetPlayerDetailsResponse playerDetails = await this.Manager.GetPlayerDetails(Guid.Parse(playerIdClaim.Value), cancellationToken);

            List <ClubMembershipResponse> membershipList = null;

            if (includeMemberships)
            {
                membershipList = await this.Manager.GetPlayersClubMemberships(Guid.Parse(playerIdClaim.Value), cancellationToken);
            }

            PlayerSignedUpTournamentsResponse signedUpTournaments = null;

            if (includeTournamentSignups)
            {
                signedUpTournaments = await this.Manager.GetPlayerSignedUpTournaments(Guid.Parse(playerIdClaim.Value), cancellationToken);
            }

            GetPlayerResponse playerResponse = this.ConvertGetPlayerDetailsResponse(playerId, playerDetails, membershipList, signedUpTournaments);

            return(this.Ok(playerResponse));
        }
Пример #2
0
        /// <summary>
        /// Gets the player.
        /// </summary>
        /// <param name="accessToken">The access token.</param>
        /// <param name="playerId">The player identifier.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        public async Task <GetPlayerDetailsResponse> GetPlayer(String accessToken,
                                                               Guid playerId,
                                                               CancellationToken cancellationToken)
        {
            GetPlayerDetailsResponse response = null;

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

            try
            {
                // Add the access token to the client headers
                this.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

                // Make the Http Call here
                HttpResponseMessage httpResponse = await this.HttpClient.GetAsync(requestUri, 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 <GetPlayerDetailsResponse>(content);
            }
            catch (Exception ex)
            {
                // An exception has occurred, add some additional information to the message
                Exception exception = new Exception("Error getting player details.", ex);

                throw exception;
            }

            return(response);
        }
Пример #3
0
        public async Task <IActionResult> GetPlayer([FromRoute] Guid playerId, CancellationToken cancellationToken)
        {
            // Get the Player Id claim from the user
            Claim playerIdClaim = ClaimsHelper.GetUserClaim(this.User, CustomClaims.PlayerId, playerId.ToString());

            Boolean validationResult = ClaimsHelper.ValidateRouteParameter(playerId, playerIdClaim);

            if (validationResult == false)
            {
                return(this.Forbid());
            }

            GetPlayerDetailsResponse player = await this.Manager.GetPlayerDetails(Guid.Parse(playerIdClaim.Value), cancellationToken);

            return(this.Ok(player));
        }
        /// <summary>
        /// Gets the player.
        /// </summary>
        /// <param name="passwordToken">The password token.</param>
        /// <param name="playerId">The player identifier.</param>
        /// <param name="viewModel">The view model.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        public async Task GetPlayer(String passwordToken,
                                    Guid playerId,
                                    MyDetailsViewModel viewModel,
                                    CancellationToken cancellationToken)
        {
            GetPlayerDetailsResponse apiResponse = await this.PlayerClient.GetPlayer(passwordToken, playerId, cancellationToken);

            viewModel.FirstName         = apiResponse.FirstName;
            viewModel.HasBeenRegistered = apiResponse.HasBeenRegistered;
            viewModel.LastName          = apiResponse.LastName;
            viewModel.MiddleName        = apiResponse.MiddleName;
            viewModel.PlayingHandicap   = apiResponse.PlayingHandicap;
            viewModel.DateOfBirth       = apiResponse.DateOfBirth;
            viewModel.EmailAddress      = apiResponse.EmailAddress;
            viewModel.ExactHandicap     = apiResponse.ExactHandicap;
            viewModel.FullName          = apiResponse.FullName;
            viewModel.Gender            = apiResponse.Gender == "M" ? 0 : 1;
            viewModel.GenderDescription = apiResponse.Gender == "M" ? "Male" : "Female";
            viewModel.HandicapCategory  = apiResponse.HandicapCategory;
        }
Пример #5
0
        /// <summary>
        /// Converts the get player details response.
        /// </summary>
        /// <param name="playerDetails">The player details.</param>
        /// <returns></returns>
        private GetPlayerResponse ConvertGetPlayerDetailsResponse(Guid playerId, GetPlayerDetailsResponse playerDetails, List <ClubMembershipResponse> membershipList, PlayerSignedUpTournamentsResponse signedUpTournaments)
        {
            GetPlayerResponse result = null;

            result = new GetPlayerResponse
            {
                Id                = playerId,
                EmailAddress      = playerDetails.EmailAddress,
                PlayingHandicap   = playerDetails.PlayingHandicap,
                MiddleName        = playerDetails.MiddleName,
                DateOfBirth       = playerDetails.DateOfBirth,
                ExactHandicap     = playerDetails.ExactHandicap,
                FirstName         = playerDetails.FirstName,
                FullName          = playerDetails.FullName,
                Gender            = playerDetails.Gender,
                HandicapCategory  = playerDetails.HandicapCategory,
                HasBeenRegistered = playerDetails.HasBeenRegistered,
                LastName          = playerDetails.LastName
            };

            if (membershipList != null)
            {
                result.ClubMemberships = new List <DataTransferObjects.Responses.v2.ClubMembershipResponse>();

                foreach (ClubMembershipResponse clubMembershipResponse in membershipList)
                {
                    result.ClubMemberships.Add(new DataTransferObjects.Responses.v2.ClubMembershipResponse
                    {
                        GolfClubId       = clubMembershipResponse.GolfClubId,
                        GolfClubName     = clubMembershipResponse.GolfClubName,
                        AcceptedDateTime = clubMembershipResponse.AcceptedDateTime,
                        MembershipId     = clubMembershipResponse.MembershipId,
                        MembershipNumber = clubMembershipResponse.MembershipNumber,
                        RejectedDateTime = clubMembershipResponse.RejectedDateTime,
                        RejectionReason  = clubMembershipResponse.RejectionReason,
                        Status           = (DataTransferObjects.Responses.v2.MembershipStatus)clubMembershipResponse.Status,
                    });
                }
            }

            if (signedUpTournaments != null)
            {
                result.SignedUpTournaments = new List <SignedUpTournamentResponse>();

                foreach (PlayerSignedUpTournament playerSignedUpTournament in signedUpTournaments.PlayerSignedUpTournaments)
                {
                    result.SignedUpTournaments.Add(new SignedUpTournamentResponse
                    {
                        GolfClubId              = playerSignedUpTournament.GolfClubId,
                        MeasuredCourseId        = playerSignedUpTournament.MeasuredCourseId,
                        TournamentFormat        = (TournamentFormat)playerSignedUpTournament.TournamentFormat,
                        PlayerId                = playerSignedUpTournament.PlayerId,
                        TournamentDate          = playerSignedUpTournament.TournamentDate,
                        MeasuredCourseName      = playerSignedUpTournament.MeasuredCourseName,
                        GolfClubName            = playerSignedUpTournament.GolfClubName,
                        TournamentId            = playerSignedUpTournament.TournamentId,
                        MeasuredCourseTeeColour = playerSignedUpTournament.MeasuredCourseTeeColour,
                        TournamentName          = playerSignedUpTournament.TournamentName,
                        ScoreEntered            = playerSignedUpTournament.ScoreEntered
                    });
                }
            }

            return(result);
        }