Exemplo n.º 1
0
        public decimal?CalculateAvg(ClassroomOption classroomOption, IEnumerable <StudentAnnouncement> studentAnnouncements, IEnumerable <ClassAnnouncement> classAnnouncements)
        {
            var classAnns = classAnnouncements.Where(x => x.MaxScore > 0).ToList();
            var stAnns    = studentAnnouncements.Where(x => x.NumericScore.HasValue).ToList();

            stAnns    = stAnns.Where(x => classAnns.Any(y => y.SisActivityId == x.ActivityId)).ToList();
            classAnns = classAnns.Where(x => stAnns.Any(y => y.ActivityId == x.SisActivityId)).ToList();

            decimal?res;

            if (classroomOption == null || classroomOption.IsAveragingMethodPoints)
            {
                var maxScoreSum = classAnns.Sum(x => x.MaxScore);
                res = maxScoreSum > 0 ? stAnns.Sum(x => x.NumericScore) / maxScoreSum : null;
            }
            else
            {
                res = classAnns.Count > 0 ? classAnns.Average(x => stAnns.FirstOrDefault(y => y.ActivityId == x.SisActivityId)?.NumericScore / x.MaxScore) : null;
            }
            return(res * 100);
        }
Exemplo n.º 2
0
 public decimal?CalculateAvg(ClassroomOption classroomOption, IEnumerable <StudentAnnouncement> studentAnnouncements, IEnumerable <ClassAnnouncement> classAnnouncements)
 {
     throw new NotImplementedException();
 }