/// <summary> /// Requests the club membership. /// </summary> /// <param name="accessToken">The access token.</param> /// <param name="golfClubId">The golf club identifier.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public async Task <GetGolfClubUserListResponse> GetGolfClubUserList(String accessToken, Guid golfClubId, CancellationToken cancellationToken) { String requestUri = $"{this.BaseAddress}/api/GolfClub/{golfClubId}/Users"; GetGolfClubUserListResponse response = null; 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 <GetGolfClubUserListResponse>(content); } catch (Exception ex) { // An exception has occurred, add some additional information to the message Exception exception = new Exception("Error requesting Golf Club User List.", ex); throw exception; } return(response); }
/// <summary> /// Gets the user list. /// </summary> /// <param name="accessToken">The access token.</param> /// <param name="claimsIdentity">The claims identity.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public async Task <List <GetGolfClubUserListViewModel> > GetUserList(String accessToken, ClaimsIdentity claimsIdentity, CancellationToken cancellationToken) { Guid golfClubId = ApiClient.GetClaimValue <Guid>(claimsIdentity, "GolfClubId"); GetGolfClubUserListResponse userList = await this.GolfClubClient.GetGolfClubUserList(accessToken, golfClubId, cancellationToken); List <GetGolfClubUserListViewModel> result = this.ModelFactory.ConvertFrom(userList); return(result); }
public async Task <IActionResult> GetGolfClub([FromRoute] Guid golfClubId, [FromQuery] Boolean includeMembers, [FromQuery] Boolean includeMeasuredCourses, [FromQuery] Boolean includeUsers, [FromQuery] Boolean includeTournaments, CancellationToken cancellationToken) { // Get the Golf Club Id claim from the user Claim golfClubIdClaim = ClaimsHelper.GetUserClaim(this.User, CustomClaims.GolfClubId, golfClubId.ToString()); Boolean validationResult = ClaimsHelper.ValidateRouteParameter(golfClubId, golfClubIdClaim); if (validationResult == false) { return(this.Forbid()); } GetGolfClubResponsev1 getGolfClubResponsev1 = await this.Manager.GetGolfClub(Guid.Parse(golfClubIdClaim.Value), cancellationToken); List <GetGolfClubMembershipDetailsResponse> membersList = null; if (includeMembers) { membersList = await this.Manager.GetGolfClubMembersList(Guid.Parse(golfClubIdClaim.Value), cancellationToken); } GetMeasuredCourseListResponse measuredCourseList = null; if (includeMeasuredCourses) { measuredCourseList = await this.Manager.GetMeasuredCourseList(Guid.Parse(golfClubIdClaim.Value), cancellationToken); } GetGolfClubUserListResponse users = null; if (includeUsers) { users = await this.Manager.GetGolfClubUsers(Guid.Parse(golfClubIdClaim.Value), cancellationToken); } GetTournamentListResponse tournamentList = null; if (includeTournaments) { tournamentList = await this.Manager.GetTournamentList(Guid.Parse(golfClubIdClaim.Value), cancellationToken); } GetGolfClubResponsev2 getGolfClubResponsev2 = this.ConvertGetGolfClubResponse(getGolfClubResponsev1, membersList, measuredCourseList, users, tournamentList); return(this.Ok(getGolfClubResponsev2)); }
//[Authorize(Policy = PolicyNames.GetClubUsersListPolicy)] public async Task <IActionResult> GetUsers([FromRoute] Guid golfClubId, CancellationToken cancellationToken) { // Get the Golf Club Id claim from the user Claim golfClubIdClaim = ClaimsHelper.GetUserClaim(this.User, CustomClaims.GolfClubId, golfClubId.ToString()); Boolean validationResult = ClaimsHelper.ValidateRouteParameter(golfClubId, golfClubIdClaim); if (validationResult == false) { return(this.Forbid()); } GetGolfClubUserListResponse users = await this.Manager.GetGolfClubUsers(Guid.Parse(golfClubIdClaim.Value), cancellationToken); return(this.Ok(users)); }
public void ModelFactory_ConvertFrom_GetGolfClubUserListResponse_ConvertedSuccessfully() { ModelFactory factory = new ModelFactory(); GetGolfClubUserListResponse apiResponse = ModelFactoryTestData.GetGolfClubUserListResponse(); List <GetGolfClubUserListViewModel> viewModel = factory.ConvertFrom(apiResponse); viewModel.Count.ShouldBe(apiResponse.Users.Count); viewModel.First().Email.ShouldBe(apiResponse.Users.First().Email); viewModel.First().FullName.ShouldBe($"{apiResponse.Users.First().GivenName} {apiResponse.Users.First().FamilyName}"); viewModel.First().GolfClubId.ShouldBe(apiResponse.Users.First().GolfClubId); viewModel.First().PhoneNumber.ShouldBe(apiResponse.Users.First().PhoneNumber); viewModel.First().UserId.ShouldBe(apiResponse.Users.First().UserId); viewModel.First().UserType.ShouldBe(apiResponse.Users.First().UserType); viewModel.First().UserName.ShouldBe(apiResponse.Users.First().UserName); }
/// <summary> /// Converts from. /// </summary> /// <param name="apiResponse">The API response.</param> /// <returns></returns> public List <GetGolfClubUserListViewModel> ConvertFrom(GetGolfClubUserListResponse apiResponse) { List <GetGolfClubUserListViewModel> viewModels = new List <GetGolfClubUserListViewModel>(); foreach (GolfClubUserResponse golfClubUserResponse in apiResponse.Users) { viewModels.Add(new GetGolfClubUserListViewModel { Email = golfClubUserResponse.Email, FullName = $"{golfClubUserResponse.GivenName} {golfClubUserResponse.FamilyName}", GolfClubId = golfClubUserResponse.GolfClubId, PhoneNumber = golfClubUserResponse.PhoneNumber == null ? string.Empty : golfClubUserResponse.PhoneNumber, UserId = golfClubUserResponse.UserId, UserName = golfClubUserResponse.UserName, UserType = golfClubUserResponse.UserType }); } return(viewModels); }
private GetGolfClubResponsev2 ConvertGetGolfClubResponse(GetGolfClubResponsev1 getGolfClubResponsev1, List <GetGolfClubMembershipDetailsResponse> membersList = null, GetMeasuredCourseListResponse measuredCourseList = null, GetGolfClubUserListResponse users = null, GetTournamentListResponse tournamentList = null) { GetGolfClubResponsev2 response = new GetGolfClubResponsev2 { TelephoneNumber = getGolfClubResponsev1.TelephoneNumber, EmailAddress = getGolfClubResponsev1.EmailAddress, Name = getGolfClubResponsev1.Name, AddressLine1 = getGolfClubResponsev1.AddressLine1, AddressLine2 = getGolfClubResponsev1.AddressLine2, Id = getGolfClubResponsev1.Id, PostalCode = getGolfClubResponsev1.PostalCode, Region = getGolfClubResponsev1.Region, Town = getGolfClubResponsev1.Town, Website = getGolfClubResponsev1.Website, }; if (membersList != null) { response.GolfClubMembershipDetailsResponseList = new List <GolfClubMembershipDetailsResponse>(); foreach (GetGolfClubMembershipDetailsResponse getGolfClubMembershipDetailsResponse in membersList) { response.GolfClubMembershipDetailsResponseList.Add(new GolfClubMembershipDetailsResponse { MembershipStatus = (MembershipStatusv2)getGolfClubMembershipDetailsResponse.MembershipStatus, PlayerId = getGolfClubMembershipDetailsResponse.PlayerId, Name = getGolfClubMembershipDetailsResponse.Name, MembershipNumber = getGolfClubMembershipDetailsResponse.MembershipNumber, PlayerDateOfBirth = getGolfClubMembershipDetailsResponse.PlayerDateOfBirth, PlayerFullName = getGolfClubMembershipDetailsResponse.PlayerFullName, PlayerGender = getGolfClubMembershipDetailsResponse.PlayerGender }); } } if (measuredCourseList != null) { response.MeasuredCourses = new List <MeasuredCourseListResponse>(); foreach (DataTransferObjects.Responses.MeasuredCourseListResponse measuredCourseListResponse in measuredCourseList.MeasuredCourses) { response.MeasuredCourses.Add(new MeasuredCourseListResponse { MeasuredCourseId = measuredCourseListResponse.MeasuredCourseId, Name = measuredCourseListResponse.Name, TeeColour = measuredCourseListResponse.TeeColour, StandardScratchScore = measuredCourseListResponse.StandardScratchScore }); } } if (users != null) { response.Users = new List <GolfClubUserResponse>(); foreach (DataTransferObjects.Responses.GolfClubUserResponse user in users.Users) { response.Users.Add(new GolfClubUserResponse { UserId = user.UserId, FamilyName = user.FamilyName, GivenName = user.GivenName, MiddleName = user.MiddleName, Email = user.Email, PhoneNumber = user.PhoneNumber, UserName = user.UserName, UserType = user.UserType }); } } if (tournamentList != null) { response.Tournaments = new List <TournamentResponse>(); foreach (DataTransferObjects.Responses.GetTournamentResponse tournamentListTournament in tournamentList.Tournaments) { response.Tournaments.Add(new TournamentResponse { MeasuredCourseId = tournamentListTournament.MeasuredCourseId, TournamentFormat = (TournamentFormat)tournamentListTournament.TournamentFormat, TournamentDate = tournamentListTournament.TournamentDate, MeasuredCourseName = tournamentListTournament.MeasuredCourseName, TournamentId = tournamentListTournament.TournamentId, MeasuredCourseTeeColour = tournamentListTournament.MeasuredCourseTeeColour, TournamentName = tournamentListTournament.TournamentName, HasBeenCancelled = tournamentListTournament.HasBeenCancelled, HasBeenCompleted = tournamentListTournament.HasBeenCompleted, HasResultBeenProduced = tournamentListTournament.HasResultBeenProduced, MeasuredCourseSSS = tournamentListTournament.MeasuredCourseSSS, PlayerCategory = (PlayerCategory)tournamentListTournament.PlayerCategory, PlayersScoresRecordedCount = tournamentListTournament.PlayersScoresRecordedCount, PlayersSignedUpCount = tournamentListTournament.PlayersSignedUpCount }); } } return(response); }