Commit af4293d

derdilla <derdilla06@gmail.com>
2023-07-13 17:14:49
fix RamBloodPressureModel averages and make code more readable
1 parent 8da2290
Changed files (1)
lib/model/ram_only_implementations.dart
@@ -39,31 +39,31 @@ class RamBloodPressureModel extends ChangeNotifier implements BloodPressureModel
   Future<int> get count async => _records.length;
 
   @override
-  Future<int> get avgDia async => _records.where((e) => e.diastolic!=null).map((e) => e.diastolic).reduce((a, b) => a! + b!)??0 ~/ _records.length;
+  Future<int> get avgDia async => _nonNullDia.reduce((a, b) => a + b) ~/ _nonNullDia.length;
 
   @override
-  Future<int> get avgPul async => _records.where((e) => e.pulse!=null).map((e) => e.pulse).reduce((a, b) => a! + b!)??0 ~/ _records.length;
+  Future<int> get avgPul async => _nonNullPul.reduce((a, b) => a + b) ~/ _nonNullPul.length;
 
   @override
-  Future<int> get avgSys async => _records.where((e) => e.systolic!=null).map((e) => e.systolic).reduce((a, b) => a! + b!)??0 ~/ _records.length;
+  Future<int> get avgSys async => _nonNullSys.reduce((a, b) => a + b) ~/ _nonNullSys.length;
 
   @override
-  Future<int> get maxDia async => _records.where((e) => e.diastolic!=null).map<int>((e) => e.diastolic!).reduce(max);
+  Future<int> get maxDia async => _nonNullDia.reduce(max);
 
   @override
-  Future<int> get maxPul async => _records.where((e) => e.pulse!=null).map<int>((e) => e.pulse!).reduce(max);
+  Future<int> get maxPul async => _nonNullPul.reduce(max);
 
   @override
-  Future<int> get maxSys async => _records.where((e) => e.systolic!=null).map<int>((e) => e.systolic!).reduce(max);
+  Future<int> get maxSys async => _nonNullSys.reduce(max);
 
   @override
-  Future<int> get minDia async => _records.where((e) => e.diastolic!=null).map<int>((e) => e.diastolic!).reduce(min);
+  Future<int> get minDia async => _nonNullDia.reduce(min);
 
   @override
-  Future<int> get minPul async => _records.where((e) => e.pulse!=null).map<int>((e) => e.pulse!).reduce(min);
+  Future<int> get minPul async => _nonNullPul.reduce(min);
 
   @override
-  Future<int> get minSys async => _records.where((e) => e.systolic!=null).map<int>((e) => e.systolic!).reduce(min);
+  Future<int> get minSys async => _nonNullSys.reduce(min);
 
   @override
   Future<DateTime> get firstDay async {
@@ -77,6 +77,10 @@ class RamBloodPressureModel extends ChangeNotifier implements BloodPressureModel
     return _records.last.creationTime;
   }
 
+  Iterable<int> get _nonNullDia => _records.where((e) => e.diastolic!=null).map<int>((e) => e.diastolic!);
+  Iterable<int> get _nonNullSys => _records.where((e) => e.systolic!=null).map<int>((e) => e.systolic!);
+  Iterable<int> get _nonNullPul => _records.where((e) => e.pulse!=null).map<int>((e) => e.pulse!);
+
   @override
   void close() {}
 }