2 // ResourceHistoryDataStore.swift
5 // Created by Hori,Masaki on 2017/01/06.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 extension CoreDataIntormation {
12 static let resourceHistory = CoreDataIntormation(
13 modelName: "ResourceHistory",
14 storeFileName: "ResourceHistory.storedata",
15 storeOptions:[NSMigratePersistentStoresAutomaticallyOption: true,
16 NSInferMappingModelAutomaticallyOption: true],
17 storeType: NSSQLiteStoreType,
21 extension CoreDataCore {
22 static let resourceHistory = CoreDataCore(.resourceHistory)
25 static let resource = Entity(name: "Resource")
28 class ResourceHistoryDataStore: CoreDataAccessor, CoreDataManager {
29 static var `default` = ResourceHistoryDataStore(type: .reader)
30 class func oneTimeEditor() -> ResourceHistoryDataStore {
31 return ResourceHistoryDataStore(type: .editor)
34 required init(type: CoreDataManagerType) {
35 managedObjectContext =
36 type == .reader ? core.parentManagedObjectContext
37 : core.editorManagedObjectContext()
43 let core = CoreDataCore.resourceHistory
44 var managedObjectContext: NSManagedObjectContext
47 extension ResourceHistoryDataStore {
48 func resources(in minites: [Int], older: Date) -> [KCResource] {
49 let p = NSPredicate(format: "minute IN %@ AND date < %@", minites, older as NSDate)
50 guard let a = try? objects(with: .resource, predicate: p),
51 let resources = a as? [KCResource]
55 func cerateResource() -> KCResource? {
56 return insertNewObject(for: .resource) as? KCResource