Просмотр исходного кода

this seems to get me through ~20 minutes running without any issues ...
I have statistics set for 15 minutes, so I've been through at least
one statistics() run as well as everything else ...

Marc G Fournier 3 лет назад
Родитель
Сommit
a3b740fbbc
1 измененных файлов с 12 добавлено и 32 удалено
  1. 12 32
      FreeAPS/Sources/APS/APSManager.swift

+ 12 - 32
FreeAPS/Sources/APS/APSManager.swift

@@ -690,6 +690,9 @@ final class BaseAPSManager: APSManager, Injectable {
 
             var uniqEvents = [TDD]()
             var total: Decimal = 0
+            var totalAmount: Decimal = 0
+            var indeces: Int = 0
+            var nrOfIndeces: Int = 0
 
             coredataContext.performAndWait {
                 let requestTDD = TDD.fetchRequest() as NSFetchRequest<TDD>
@@ -702,38 +705,14 @@ final class BaseAPSManager: APSManager, Injectable {
                 try? uniqEvents = coredataContext.fetch(requestTDD)
 
                 total = uniqEvents.compactMap({ each in each.tdd as? Decimal ?? 0 }).reduce(0, +)
-            }
-
-            var indeces = uniqEvents.count
+                indeces = uniqEvents.count
 
-            /*
-             if uniqEvents.first != nil {
-             for uniqEvent in uniqEvents {
-             total += uniqEvent != Empty ? (uniqEvent.tdd ?? 0) as Decimal : 0
-             indeces += 1
-             }
-             }
-             */
+                // Only fetch once. Use same (previous) fetch
+                let twoHoursArray = uniqEvents.filter({ ($0.timestamp ?? Date()) >= twoHoursAgo })
+                nrOfIndeces = twoHoursArray.count
 
-            // Only fetch once. Use same (previous) fetch
-            let twoHoursArray = uniqEvents.filter({ ($0.timestamp ?? Date()) >= twoHoursAgo })
-
-            var totalAmount: Decimal = 0
-
-            totalAmount = twoHoursArray.compactMap({ each in each.tdd as? Decimal ?? 0 }).reduce(0, +)
-            var nrOfIndeces = twoHoursArray.count
-
-            /*
-             var nrOfIndeces: Decimal = 0
-             if twoHoursArray.first != nil {
-             for entry in twoHoursArray {
-             if (entry.tdd?.decimalValue ?? 0) > 0 {
-             totalAmount += entry.tdd?.decimalValue ?? 0
-             nrOfIndeces += 1
-             }
-             }
-             }
-             */
+                totalAmount = twoHoursArray.compactMap({ each in each.tdd as? Decimal ?? 0 }).reduce(0, +)
+            }
 
             if indeces == 0 {
                 indeces = 1
@@ -806,6 +785,7 @@ final class BaseAPSManager: APSManager, Injectable {
         // MARK: Fetch Carbs from CoreData
 
         var carbs = [Carbohydrates]()
+        var carbTotal: Decimal = 0
 
         coredataContext.performAndWait {
             let requestCarbs = Carbohydrates.fetchRequest() as NSFetchRequest<Carbohydrates>
@@ -817,9 +797,9 @@ final class BaseAPSManager: APSManager, Injectable {
             requestCarbs.sortDescriptors = [sortCarbs]
 
             try? carbs = coredataContext.fetch(requestCarbs)
-        }
 
-        let carbTotal = carbs.map({ carbs in carbs.carbs as? Decimal ?? 0 }).reduce(0, +)
+            carbTotal = carbs.map({ carbs in carbs.carbs as? Decimal ?? 0 }).reduce(0, +)
+        }
 
         // MARK: Fetch TDD from CoreData