student-legacy/filcnaplo/lib/helpers/average_helper.dart
2021-08-30 22:38:58 +02:00

25 lines
701 B
Dart

import 'package:filcnaplo_kreta_api/models/grade.dart';
class AverageHelper {
static double averageEvals(List<Grade> grades, {bool finalAvg = false}) {
double average = 0.0;
List<String> ignoreInFinal = ["5,SzorgalomErtek", "4,MagatartasErtek"];
if (finalAvg)
grades.removeWhere((e) =>
(e.value.value == 0) ||
(ignoreInFinal.contains(e.gradeType?.id)));
grades.forEach((e) {
average += e.value.value * ((finalAvg ? 100 : e.value.weight) / 100);
});
average = average /
grades
.map((e) => (finalAvg ? 100 : e.value.weight) / 100)
.fold(0.0, (a, b) => a + b);
return average.isNaN ? 0.0 : average;
}
}