Exemple #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));
        }
Exemple #2
0
        /// <summary>
        /// Gets the tournaments signed up for.
        /// </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 <PlayerSignedUpTournamentsResponse> GetTournamentsSignedUpFor(String accessToken,
                                                                                        Guid playerId,
                                                                                        CancellationToken cancellationToken)
        {
            PlayerSignedUpTournamentsResponse response = new PlayerSignedUpTournamentsResponse();

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

            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 <PlayerSignedUpTournamentsResponse>(content);
            }
            catch (Exception ex)
            {
                // An exception has occurred, add some additional information to the message
                Exception exception = new Exception($"Error getting signed up tournaments for player {playerId}.", ex);

                throw exception;
            }

            return(response);
        }
        /// <summary>
        /// Gets the signed up tournament.
        /// </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 GetSignedUpTournament(String passwordToken,
                                                Guid playerId,
                                                MyTournamentsViewModel viewModel,
                                                CancellationToken cancellationToken)
        {
            PlayerSignedUpTournamentsResponse response = await this.PlayerClient.GetTournamentsSignedUpFor(passwordToken, playerId, cancellationToken);

            PlayerSignedUpTournament temp = response.PlayerSignedUpTournaments.Where(p => p.PlayerId == playerId).OrderByDescending(p => p.TournamentDate).First();

            viewModel.SignedUpTournament = new SignedUpTournamentViewModel();
            viewModel.SignedUpTournament.TournamentName = temp.TournamentName;
        }
Exemple #4
0
        public async Task <IActionResult> GetPlayerTournamentSignUps([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());
            }

            PlayerSignedUpTournamentsResponse result = await this.Manager.GetPlayerSignedUpTournaments(Guid.Parse(playerIdClaim.Value), cancellationToken);

            // return the result
            return(this.Ok(result));
        }
Exemple #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);
        }