Beispiel #1
0
        public static ClassExpolorerViewData Create(ClassDetails classDetails, IList <GradingStandardInfo> gradingStandards)
        {
            var res = new ClassExpolorerViewData(classDetails)
            {
                Standards = new List <ClassStandardViewData>()
            };
            var standardsDic = gradingStandards.GroupBy(x => x.Standard.Id).ToDictionary(x => x.Key, x => x);
            IList <ClassStandardViewData> graded    = new List <ClassStandardViewData>();
            IList <ClassStandardViewData> notGraded = new List <ClassStandardViewData>();

            foreach (var item in standardsDic)
            {
                var standard          = item.Value.First().Standard;
                var classStandardView = ClassStandardViewData.Create(standard, item.Value.ToList());
                if (classStandardView.NumericGrade.HasValue)
                {
                    graded.Add(classStandardView);
                }
                else
                {
                    notGraded.Add(classStandardView);
                }
            }
            graded        = graded.OrderBy(x => x.NumericGrade).ThenBy(x => x.Name).ToList();
            res.Standards = graded.Concat(notGraded.OrderBy(x => x.Name)).ToList();
            return(res);
        }
Beispiel #2
0
        public static ClassStandardViewData Create(Standard standard, IList <GradingStandardInfo> gradingStandards)
        {
            var res        = new ClassStandardViewData(standard);
            var gStandards = gradingStandards.Where(x => x.Standard.Id == standard.Id).ToList();

            if (gStandards.Count > 0)
            {
                res.NumericGrade = gStandards.Average(x => x.NumericGrade);
            }
            return(res);
        }