public Response RemovePlayerFromAssignment(PlayerAssignmentRequest request) { var club = clubQuery.GetClub(request.ClubId); if (club == null) { return(Response.CreateResponse(new EntityNotFoundException("The specified club does not exist"))); } var assignment = assignmentQuery.GetPlayerAssignment(new Core.Queries.PlayerAssignmentQuery { ClubId = request.ClubId, AssignmentId = request.AssignmentId, PlayerId = request.PlayerId }); if (assignment == null) { return(Response.CreateResponse(new EntityNotFoundException("The specified assignment does not exist"))); } else if (assignment.ClubId != request.ClubId) { return(Response.CreateResponse(new IllegalOperationException("The specified assignment does not belong to this club"))); } try { assignmentRepository.DeletePlayerAssignment(request); return(Response.CreateSuccessResponse()); }catch (Exception ex) { return(Response.CreateResponse(ex)); } }
public Response AddPlayerToAssignment(PlayerAssignmentRequest request) { var club = clubQuery.GetClub(request.ClubId); if (club == null) { return(Response.CreateResponse(new EntityNotFoundException("The specified club does not exist"))); } else if (request.PlayerId.IsEmpty()) { return(Response.CreateResponse(new IllegalOperationException("PlayerId is required"))); } else if (request.CoachId.IsEmpty()) { return(Response.CreateResponse(new IllegalOperationException("CoachId is required"))); } var playerAssignment = assignmentQuery.GetPlayerAssignment(new Core.Queries.PlayerAssignmentQuery { ClubId = request.ClubId, AssignmentId = request.AssignmentId, PlayerId = request.PlayerId }); if (playerAssignment != null) { return(Response.CreateResponse(new IllegalOperationException("This assignment has already been allocated to the specified player"))); } var assignment = assignmentQuery.GetAssignment(request.ClubId, request.AssignmentId); if (assignment.ClubId != request.ClubId) { return(Response.CreateResponse(new IllegalOperationException("The specified assignment does not belong to this club"))); } var coach = memberQuery.GetCoach(request.CoachId.Value); if (coach == null) { return(Response.CreateResponse(new EntityNotFoundException("The specified coach does not exist"))); } else if (coach.ClubId != club.Guid) { return(Response.CreateResponse(new IllegalOperationException("The specified coach does not belong to this club"))); } try { assignmentRepository.AddPlayerToAssignment(request); return(Response.CreateSuccessResponse()); } catch (Exception ex) { return(Response.CreateResponse(ex)); } }
public void DeletePlayerAssignment(PlayerAssignmentRequest request) { var sql = $@"DELETE PA FROM PlayerAssignments PA INNER JOIN Players P ON PA.PlayerId = P.PlayerId INNER JOIN Assignments A ON A.AssignmentId = PA.AssignmentId INNER JOIN Clubs C ON C.ClubId = A.ClubId WHERE P.Guid = @PlayerGuid AND C.Guid = @ClubGuid AND A.Guid = @AssignmentGuid;"; var parameters = new DynamicParameters(); parameters.Add("@PlayerGuid", request.PlayerId); parameters.Add("@AssignmentGuid", request.AssignmentId); parameters.Add("@ClubGuid", request.ClubId); using (var connection = factory.Connect()) { connection.Open(); connection.Execute(sql, parameters); } }
public void AddPlayerToAssignment(PlayerAssignmentRequest request) { var parameters = new DynamicParameters(); parameters.Add("@AssignmentGuid", request.AssignmentId); parameters.Add("@PlayerGuid", request.PlayerId); parameters.Add("@CoachGuid", request.CoachId); parameters.Add("@ClubGuid", request.ClubId.ToString()); var sql = $@"INSERT INTO PlayerAssignments (PlayerId, AssignmentId, AssignedOn, CoachId) SELECT P.PlayerId, (SELECT AssignmentId FROM Assignments WHERE Guid = @AssignmentGuid), GetDate(), (Select CoachId FROM Coaches WHERE Guid = @CoachGuid) FROM Players P WHERE P.Guid = @PlayerGuid AND (P.Deleted IS NULL OR P.Deleted = 0);"; using (var connection = factory.Connect()) { connection.Open(); connection.Execute(sql, parameters); } }