Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }