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()); } }