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); }
public decimal?CalculateAvg(ClassroomOption classroomOption, IEnumerable <StudentAnnouncement> studentAnnouncements, IEnumerable <ClassAnnouncement> classAnnouncements) { throw new NotImplementedException(); }