public async Task <IActionResult> RequestClubMembership([FromRoute] Guid playerId, [FromRoute] Guid golfClubId, CancellationToken cancellationToken) { List <KeyValuePair <String, StringValues> > headers = this.Request.Headers.ToList(); String authHeader = headers.Where(x => x.Key == "Authorization").Select(x => x.Value).SingleOrDefault().SingleOrDefault(); if (authHeader == null) { return(this.Unauthorized()); } using (MockDatabaseDbContext context = this.MockDatabaseDbContextResolver()) { Player player = context.Players.SingleOrDefault(p => p.PlayerId == playerId); if (player == null) { return(this.BadRequest()); } GolfClub golfClub = context.GolfClubs.SingleOrDefault(c => c.GolfClubId == golfClubId); if (golfClub == null) { return(this.BadRequest()); } GolfClubMembership membership = new GolfClubMembership { PlayerId = playerId, AcceptedDateTime = DateTime.Now, GolfClubId = golfClubId, GolfClubName = golfClub.Name, MembershipId = Guid.NewGuid(), PlayerDateOfBirth = player.DateOfBirth, PlayerFullName = $"{player.FirstName} {player.LastName}", PlayerGender = player.Gender, }; await context.GolfClubMemberships.AddAsync(membership, cancellationToken); await context.SaveChangesAsync(cancellationToken); } return(this.NoContent()); }
public async Task <IActionResult> SignUpForTournament([FromRoute] Guid playerId, [FromRoute] Guid tournamentId, CancellationToken cancellationToken) { List <KeyValuePair <String, StringValues> > headers = this.Request.Headers.ToList(); String authHeader = headers.Where(x => x.Key == "Authorization").Select(x => x.Value).SingleOrDefault().SingleOrDefault(); if (authHeader == null) { return(this.Unauthorized()); } using (MockDatabaseDbContext context = this.MockDatabaseDbContextResolver()) { Player player = context.Players.SingleOrDefault(p => p.PlayerId == playerId); if (player == null) { return(this.BadRequest()); } Tournament tournament = context.Tournaments.SingleOrDefault(t => t.TournamentId == tournamentId); if (tournament == null) { return(this.BadRequest()); } PlayerTournamentSignIn playerTournamentSignIn = new PlayerTournamentSignIn { PlayerId = playerId, TournamentId = tournamentId }; await context.PlayerTournamentSignIns.AddAsync(playerTournamentSignIn, cancellationToken); await context.SaveChangesAsync(cancellationToken); } return(this.NoContent()); }
public async Task <IActionResult> PostPlayer([FromBody] RegisterPlayerRequest request, CancellationToken cancellationToken) { // create a player Player player = new Player { PlayerId = Guid.NewGuid(), LastName = request.LastName, FirstName = request.FirstName, DateOfBirth = request.DateOfBirth, EmailAddress = request.EmailAddress, ExactHandicap = request.ExactHandicap, Gender = request.Gender, MiddleName = request.MiddleName }; // create a user RegisteredUser user = new RegisteredUser { EmailAddress = request.EmailAddress, Password = "******", UserId = Guid.NewGuid() }; // Add to mock database using (MockDatabaseDbContext context = this.MockDatabaseDbContextResolver()) { await context.RegisteredUsers.AddAsync(user, cancellationToken); await context.Players.AddAsync(player, cancellationToken); await context.SaveChangesAsync(cancellationToken); } return(this.Ok(new RegisterPlayerResponse { PlayerId = player.PlayerId })); }