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