/// <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); } }