NCManageDatabase.swift 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //
  2. // NCManageDatabase.swift
  3. // Nextcloud
  4. //
  5. // Created by Marino Faggiana on 06/05/17.
  6. // Copyright © 2017 TWS. All rights reserved.
  7. //
  8. import RealmSwift
  9. class NCManageDatabase: NSObject {
  10. static let sharedInstance: NCManageDatabase = {
  11. let instance = NCManageDatabase()
  12. return instance
  13. }()
  14. override init() {
  15. let dirGroup = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: k_capabilitiesGroups)
  16. var config = Realm.Configuration()
  17. config.fileURL = dirGroup?.appendingPathComponent("\(appDatabaseNextcloud)/\(k_databaseDefault)")
  18. Realm.Configuration.defaultConfiguration = config
  19. }
  20. func addActivityServer(_ listOfActivity: [OCActivity], account: String) {
  21. let realm = try! Realm()
  22. try! realm.write {
  23. for activity in listOfActivity {
  24. // Verify
  25. let records = realm.objects(DBActivity.self).filter("idActivity = \(activity.idActivity)")
  26. if (records.count > 0) {
  27. continue
  28. }
  29. // Add new Activity
  30. let dbActivity = DBActivity()
  31. dbActivity.account = account
  32. dbActivity.date = activity.date
  33. dbActivity.idActivity = Double(activity.idActivity)
  34. dbActivity.link = activity.link
  35. dbActivity.note = activity.subject
  36. dbActivity.type = k_activityTypeInfo
  37. realm.add(dbActivity)
  38. }
  39. }
  40. }
  41. func addActivityClient(_ file: String, fileID: String, action: String, selector: String, note: String, type: String, verbose: Bool, account: String?, activeUrl: String?) {
  42. var noteReplacing : String = ""
  43. if (activeUrl != nil) {
  44. noteReplacing = note.replacingOccurrences(of: "\(activeUrl!)\(webDAV)", with: "")
  45. }
  46. noteReplacing = note.replacingOccurrences(of: "\(k_domain_session_queue).", with: "")
  47. let realm = try! Realm()
  48. try! realm.write {
  49. // Add new Activity
  50. let dbActivity = DBActivity()
  51. if (account != nil) {
  52. dbActivity.account = account!
  53. }
  54. dbActivity.action = action
  55. dbActivity.file = file
  56. dbActivity.fileID = fileID
  57. dbActivity.note = noteReplacing
  58. dbActivity.selector = selector
  59. dbActivity.type = type
  60. dbActivity.verbose = verbose
  61. realm.add(dbActivity)
  62. }
  63. }
  64. func getAllTableActivityWithPredicate(_ predicate : NSPredicate) -> Results<DBActivity> {
  65. let realm = try! Realm()
  66. let records = realm.objects(DBActivity.self).filter(predicate).sorted(byKeyPath: "date")
  67. return records;
  68. }
  69. }