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)); }
/// <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); }
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; }
/// <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); }