コード例 #1
0
ファイル: GradeSection.cs プロジェクト: robperson/AssessTrack
        public GradeSection(AssessmentType assessmentType, Profile profile, AssessTrackDataRepository repo, bool includeExtraCredit, DateTime date)
        {
            AssessmentType = assessmentType;
            TotalPoints = MaxPoints = 0;
            Grades = new List<Grade>();
            CourseTermMember member = repo.GetCourseTermMemberByMembershipID(assessmentType.CourseTerm, profile.MembershipID);
            List<Assessment> assessments = repo.GetAllNonTestBankAssessments(assessmentType.CourseTerm, includeExtraCredit, assessmentType, member).Where(test => test.DueDate.CompareTo(date) < 0).ToList();
            foreach (Assessment assessment in assessments)
            {
                Grade grade = new Grade(assessment, profile);
                Grades.Add(grade);

                if ((grade.SubmissionRecord != null && grade.SubmissionRecord.GradedBy != null) ||
                    (DateTime.Now.CompareTo(assessment.DueDate) > 0 && grade.SubmissionRecord == null))
                {
                    MaxPoints += assessment.Weight;
                    TotalPoints += grade.Points;
                }
            }
            //if (TotalPoints > 0 && MaxPoints == 0) //if everything is extra credit
            //{
            //    MaxPoints = 1; //to avoid division by zero
            //}

            if (MaxPoints == 0)
            {
                Percentage = 0;
                Weight = 0;
            }
            else
            {
                Percentage = (TotalPoints / MaxPoints) * 100;
                Weight = assessmentType.Weight;
            }
        }
コード例 #2
0
        public void DeleteAssessmentType(AssessmentType assessmentType)
        {
            foreach (var assessment in assessmentType.Assessments)
            {
                DeleteAssessment(assessment);
            }

            dc.AssessmentTypes.DeleteOnSubmit(assessmentType);
        }
コード例 #3
0
 public List<Assessment> GetAllNonTestBankAssessments(CourseTerm courseTerm, bool includeExtraCredit, AssessmentType filterby)
 {
     var assessments = from asmt in courseTerm.Assessments
             where !asmt.AssessmentType.QuestionBank && asmt.IsVisible
             select asmt;
     if (!includeExtraCredit)
         assessments = assessments.Where(a => !a.IsExtraCredit);
     if (filterby != null)
         assessments = assessments.Where(a => a.AssessmentType == filterby);
     return assessments.OrderBy(a => a.Name).ToList();
 }
コード例 #4
0
 public List<Assessment> GetAllNonTestBankAssessments(CourseTerm courseTerm, bool includeExtraCredit, AssessmentType filterby, CourseTermMember member)
 {
     var assessments = from asmt in (courseTerm != null)? courseTerm.Assessments.AsQueryable() : dc.Assessments.AsQueryable()
             where !asmt.AssessmentType.QuestionBank && asmt.IsVisible
             select asmt;
     if (!includeExtraCredit)
         assessments = assessments.Where(a => !a.IsExtraCredit);
     if (filterby != null)
         assessments = assessments.Where(a => a.AssessmentType == filterby);
     if (member.AccessLevel == 1 )
         assessments = assessments.Where(a => a.Section == null || (member.Section.HasValue && a.Section.Value == member.Section.Value));
     return assessments.OrderBy(a => a.Name).ToList();
 }
コード例 #5
0
 public ActionResult Create(string courseTermShortName, string siteShortName, AssessmentType newType)
 {
     if (ModelState.IsValid)
     {
         try
         {
             courseTerm.AssessmentTypes.Add(newType);
             dataRepository.Save();
             return RedirectToAction("Index", new { siteShortName = siteShortName, courseTermShortName = courseTermShortName });
         }
         catch (RuleViolationException)
         {
             ModelState.AddModelErrors(newType.GetRuleViolations());
         }
         catch (Exception ex)
         {
             ModelState.AddModelError("_FORM", ex);
         }
     }
     return View(newType);
 }
コード例 #6
0
 //
 // GET: /AssessmentType/Create
 public ActionResult Create(string courseTermShortName, string siteShortName)
 {
     AssessmentType newType = new AssessmentType() { Weight = 0, QuestionBank = false, CourseTerm = courseTerm };
     return View(newType);
 }
コード例 #7
0
 public List<Assessment> GetAllNonTestBankAssessments(CourseTerm courseTerm, bool includeExtraCredit, AssessmentType filterby)
 {
     Guid userID = UserHelpers.GetCurrentUserID();
     CourseTermMember member = GetCourseTermMemberByMembershipID(courseTerm, userID);
     return GetAllNonTestBankAssessments(courseTerm, includeExtraCredit, filterby, member);
 }