示例#1
0
 public IList <GradingScale> GetGradingScales(bool onlyAppliedToAlphaGrades = true)
 {
     using (var u = Read())
     {
         var gradingScales = new DataAccessBase <GradingScale>(u).GetAll(new AndQueryCondition
         {
             { GradingScale.SCHOOL_ID_FIELD, Context.SchoolLocalId }
         });
         var gradingRangeScales = new DataAccessBase <GradingScaleRange>(u).GetAll();
         return(gradingScales.Where(x => gradingRangeScales.Any(y => y.GradingScaleRef == x.Id)).ToList());
     }
 }
        public PracticeGrade Add(int standardId, int studentId, Guid applicationId, string score)
        {
            Trace.Assert(Context.SchoolYearId.HasValue);
            //TODO: add security
            if (Context.PersonId != studentId)
            {
                throw new ChalkableSecurityException();
            }
            var classes = ServiceLocator.ClassService.GetStudentClasses(Context.SchoolYearId.Value, studentId);

            using (var uow = Update())
            {
                var classStandards = new DataAccessBase <ClassStandard, int>(uow)
                                     .GetAll(new AndQueryCondition {
                    { ClassStandard.STANDARD_REF_FIELD, standardId }
                });

                if (!classes.Any(c => classStandards.Any(cs => cs.ClassRef == c.Id || cs.ClassRef == c.CourseRef)))
                {
                    throw new ChalkableSecurityException();
                }

                var da   = new DataAccessBase <PracticeGrade>(uow);
                var date = Context.NowSchoolYearTime;
                da.Insert(new PracticeGrade
                {
                    Score          = score,
                    StandardId     = standardId,
                    StudentId      = studentId,
                    ApplicationRef = applicationId,
                    Date           = date
                });
                uow.Commit();
                var res = da.GetAll(new AndQueryCondition
                {
                    { PracticeGrade.STANDARD_ID_FIELD, standardId },
                    { PracticeGrade.STUDENT_ID_FIELD, studentId },
                    { PracticeGrade.APPLICATION_REF_FIELD, applicationId },
                    { PracticeGrade.DATE_FIELD, date },
                });
                return(res.Last());
            }
        }