/// <summary> /// Over rides OnPreRender. /// </summary> /// <param name="e">An EventArgs that contains the event data.</param> protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); if (!Page.IsPostBack) { try { this.SetResourceText(); if ( (SlkStore.IsInstructor(SPWeb) && (Status == LearnerAssignmentState.Completed || Status == LearnerAssignmentState.Final)) || SlkStore.IsLearner(SPWeb) || (SlkStore.IsObserver(SPWeb) && Status == LearnerAssignmentState.Final) ) { BuildPageContent(); } else { string exceptionMessage; if (SlkStore.IsInstructor(SPWeb)) { exceptionMessage = PageCulture.Resources.SubmittedFilesTeacherNoAccessException; } else { exceptionMessage = PageCulture.Resources.SubmittedFilesLearnerNoAccessException; } throw new SafeToDisplayException(exceptionMessage); } } catch (Exception ex) { this.contentPanel.Visible = false; this.errorBanner.Clear(); this.errorBanner.AddException(SlkStore, ex); } } }
void LoadAssignmentProperties() { if (SlkStore.IsInstructor(SPWeb)) { this.assignmentProperties = SlkStore.LoadAssignmentPropertiesForLearner(LearnerAssignmentGuid, SlkRole.Instructor); } else if (SlkStore.IsLearner(SPWeb)) { this.assignmentProperties = SlkStore.LoadAssignmentPropertiesForLearner(LearnerAssignmentGuid, SlkRole.Learner); } else if (SlkStore.IsObserver(SPWeb)) { this.assignmentProperties = SlkStore.LoadAssignmentPropertiesForLearner(LearnerAssignmentGuid, SlkRole.Learner); } else { this.assignmentProperties = SlkStore.LoadAssignmentPropertiesForLearner(LearnerAssignmentGuid, SlkRole.None); } learnerAssignmentProperties = assignmentProperties.Results[0]; }
/// <summary> /// Provides an option to override and update the cached data about the /// current learner assignment. /// </summary> /// <param name="forceUpdate">If false, the value is cached.</param> /// <returns></returns> protected LearnerAssignmentProperties GetLearnerAssignment(bool forceUpdate) { // If the current value has not been set, or if we have to update it, get // the information from the base class. if (learnerAssignmentProperties == null || forceUpdate) { SlkRole slkRole; if (SlkStore.IsObserver(SPWeb) && AssignmentView == AssignmentView.StudentReview) { // If the user is an observer and the AssignmentView is 'StudentReview', then // set the slkrole to 'Observer'; Otherwise get the role using GetSlkRole method slkRole = SlkRole.Observer; } else { slkRole = GetSlkRole(AssignmentView); } AssignmentProperties assignment = SlkStore.LoadAssignmentPropertiesForLearner(LearnerAssignmentGuidId, slkRole); learnerAssignmentProperties = assignment.Results[0]; } return(learnerAssignmentProperties); }
/// <summary>Process a view request to determine if it's valid. The AssignmentView must be set before calling this method.</summary> protected bool ProcessViewRequest(LearnerAssignmentState learnerStatus, SessionView sessionView) { switch (AssignmentView) { case AssignmentView.Execute: { // Verify that session view matches what you expect if (sessionView != SessionView.Execute) { throw new InvalidOperationException(SlkFrameset.FRM_UnexpectedViewRequestHtml); } // Can only access active assignments in Execute view if (learnerStatus != LearnerAssignmentState.Active) { RegisterError(SlkFrameset.FRM_AssignmentNotAvailableTitle, SlkFrameset.FRM_AssignmentTurnedInMsgHtml, false); return(false); } break; } case AssignmentView.Grading: { // Verify that session view matches what you expect if (sessionView != SessionView.Review) { throw new InvalidOperationException(SlkFrameset.FRM_UnexpectedViewRequestHtml); } // Grading is not available if the assignment has not been submitted. if ((learnerStatus == LearnerAssignmentState.Active) || (learnerStatus == LearnerAssignmentState.NotStarted)) { RegisterError(SlkFrameset.FRM_AssignmentNotGradableTitle, SlkFrameset.FRM_AssignmentCantBeGradedMsgHtml, false); return(false); } break; } case AssignmentView.InstructorReview: { // Verify that session view matches what you expect if (sessionView != SessionView.Review) { throw new InvalidOperationException(SlkFrameset.FRM_UnexpectedViewRequestHtml); } // Only available if student has started the assignment if (learnerStatus == LearnerAssignmentState.NotStarted) { RegisterError(SlkFrameset.FRM_ReviewNotAvailableTitle, SlkFrameset.FRM_ReviewNotAvailableMsgHtml, false); return(false); } break; } case AssignmentView.StudentReview: { // Verify that session view matches what you expect if (sessionView != SessionView.Review) { throw new InvalidOperationException(SlkFrameset.FRM_UnexpectedViewRequestHtml); } // If the user is an observer and the assignment state is equal to 'Completed' or 'NotStarted', // then register error message if (SlkStore.IsObserver(SPWeb) && ((learnerStatus == LearnerAssignmentState.Completed) || (learnerStatus == LearnerAssignmentState.NotStarted))) { RegisterError(SlkFrameset.FRM_ObserverReviewNotAvailableTitle, SlkFrameset.FRM_ObserverReviewNotAvailableMsgHtml, false); return(false); } // If requesting student review, the assignment state must be final if (!SlkStore.IsObserver(SPWeb) && learnerStatus != LearnerAssignmentState.Final) { RegisterError(SlkFrameset.FRM_ReviewNotAvailableTitle, SlkFrameset.FRM_LearnerReviewNotAvailableMsgHtml, false); return(false); } break; } default: break; } return(true); }