student-legacy/refilc/lib/helpers/average_helper.dart

26 lines
698 B
Dart

import 'package:refilc_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)));
}
for (var e in grades) {
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;
}
}