forked from firka/student-legacy
25 lines
701 B
Dart
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;
|
|
}
|
|
} |