private String findLowestAssignedAssessor(Map<String, Map<String, PeerAssessmentItem>> peerAssessments, String assesseeId, String assesseeSubmissionId, List<String> snakeSubmissionList, Map<String, AssignmentSubmission> submissionIdMap){//find the lowest count of assigned submissions String lowestAssignedAssessor = null; Integer lowestAssignedAssessorCount = null; for(String sId : snakeSubmissionList){ AssignmentSubmission s = submissionIdMap.get(sId); //do not include assesseeId (aka the user being assessed) if(!assesseeId.equals(s.getSubmitterId()) && (lowestAssignedAssessorCount == null || peerAssessments.get(s.getSubmitterId()).keySet().size() < lowestAssignedAssessorCount)){ //check if this user already has a peer assessment for this assessee boolean found = false; for(PeerAssessmentItem p : peerAssessments.get(s.getSubmitterId()).values()){ if(p.getSubmissionId().equals(assesseeSubmissionId)){ found = true; break; } } if(!found){ lowestAssignedAssessorCount = peerAssessments.get(s.getSubmitterId()).keySet().size(); lowestAssignedAssessor = s.getSubmitterId(); } } } return lowestAssignedAssessor; }
public void savePeerAssessmentItem(PeerAssessmentItem item){ if(item != null && item.getAssessorUserId() != null && item.getSubmissionId() != null){ getHibernateTemplate().saveOrUpdate(item); getHibernateTemplate().flush(); } }
if(submissionIdMap.containsKey(p.getSubmissionId())){ AssignmentSubmission s = submissionIdMap.get(p.getSubmissionId()); peerAssessments.put(p.getSubmissionId(), p); assignedAssessmentsMap.put(p.getAssessorUserId(), peerAssessments); }else{ log.error("AssignmentPeerAssessmentServiceImpl: found a peer assessment with an invalid session id: " + p.getSubmissionId());