示例#1
0
        /// <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);
            }
        }