public Response TrackAssignmentView(AssignmentViewTrackingRequest 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.TrackAssignmentView(request); return(Response.CreateSuccessResponse()); } catch (Exception ex) { return(Response.CreateResponse(ex)); } }
public void TrackAssignmentView(AssignmentViewTrackingRequest request) { var parameters = new DynamicParameters(); parameters.Add("@AssignmentGuid", request.AssignmentId); parameters.Add("@PlayerGuid", request.PlayerId); parameters.Add("@ClubGuid", request.ClubId.ToString()); var sql = $@"UPDATE PlayerAssignments SET ViewedOn = GetDate() FROM PlayerAssignments PA INNER JOIN Players P ON PA.PlayerId = P.PlayerId INNER JOIN Assignments A ON PA.AssignmentId = A.AssignmentId INNER JOIN Clubs C ON C.ClubId = A.ClubId WHERE P.Guid = @PlayerGuid AND A.Guid = @AssignmentGuid AND C.Guid = @ClubGuid AND (P.Deleted IS NULL OR P.Deleted = 0);"; using (var connection = factory.Connect()) { connection.Open(); connection.Execute(sql, parameters); } }