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