/// <summary>Returns the assignment.</summary> public void Return(AssignmentSaver saver) { CheckUserIsInstructor(); StoredLearningSession session = null; // Check the status switch (Status) { case LearnerAssignmentState.NotStarted: // Force collection & return session = CreateAttemptIfRequired(false); break; case LearnerAssignmentState.Active: // Force collection & return break; case LearnerAssignmentState.Completed: break; case LearnerAssignmentState.Final: // No need to return return; default: // New status added break; } LearnerAssignmentState newStatus = LearnerAssignmentState.Final; if (session == null) { Save(newStatus, true, NonELearningStatus(AttemptStatus.Completed), null, saver); } else { Save(newStatus, true, NonELearningStatus(AttemptStatus.Completed), session.TotalPoints, saver); } Status = newStatus; if (Assignment.EmailChanges) { saver.SendReturnEmail(User, this); } if (Assignment.IsNonELearning) { saver.UpdateDropBoxPermissions(newStatus, User); } }
/// <summary>reactivates the assignment.</summary> public void Reactivate(AssignmentSaver saver) { CheckUserIsInstructor(); // Check the status switch (Status) { case LearnerAssignmentState.NotStarted: throw InvalidTransitionException(LearnerAssignmentState.NotStarted, LearnerAssignmentState.Active); case LearnerAssignmentState.Active: return; // Already active case LearnerAssignmentState.Completed: break; case LearnerAssignmentState.Final: break; default: // New status added break; } LearnerAssignmentState newStatus = LearnerAssignmentState.Active; if (Assignment.IsELearning) { ReactivateSession(); } else { saver.UpdateDropBoxPermissions(newStatus, User); } Save(newStatus, false, NonELearningStatus(AttemptStatus.Active), null, saver); Status = newStatus; if (Assignment.EmailChanges) { saver.SendReactivateEmail(User); } }
/// <summary>Collects the assignment.</summary> public void Collect(AssignmentSaver saver) { CheckUserIsInstructor(); StoredLearningSession session = null; // Check the status switch (Status) { case LearnerAssignmentState.NotStarted: session = CreateAttemptIfRequired(true); break; case LearnerAssignmentState.Active: break; case LearnerAssignmentState.Completed: // No need to collect return; case LearnerAssignmentState.Final: // No need to collect return; default: // New status added break; } CompleteAssignment(session, saver); if (Assignment.EmailChanges) { saver.SendCollectEmail(User); } if (Assignment.IsNonELearning) { saver.UpdateDropBoxPermissions(LearnerAssignmentState.Completed, User); } }