Reset library now working
This commit is contained in:
@@ -29,6 +29,7 @@ class LibraryImport {
|
||||
return .none
|
||||
}
|
||||
}
|
||||
|
||||
func backupFiles() -> [String] {
|
||||
do {
|
||||
guard let documentDirectory = try ICloudManager.backup_folder else { return [] }
|
||||
@@ -53,24 +54,27 @@ class LibraryImport {
|
||||
return []
|
||||
}
|
||||
|
||||
private func resetDatabase() {
|
||||
self.CDContext.reset()
|
||||
func resetDatabase(games : [Game], accessories : [Accessory], consoles : [Console], gameSeries: [GameSeries]) {
|
||||
self.CDContext.performAndWait {
|
||||
let deleteRequests =
|
||||
[NSBatchDeleteRequest(fetchRequest: Game.fetchRequest()),
|
||||
NSBatchDeleteRequest(fetchRequest: Accessory.fetchRequest()),
|
||||
NSBatchDeleteRequest(fetchRequest: Console.fetchRequest()),
|
||||
NSBatchDeleteRequest(fetchRequest: GameSeries.fetchRequest())]
|
||||
|
||||
let storeCoordinator = CDManager.shared.persistentContainer.persistentStoreCoordinator
|
||||
do {
|
||||
for deleteRequest in deleteRequests {
|
||||
try storeCoordinator.execute(deleteRequest, with: CDContext)
|
||||
// let gamesFR = NSFetchRequest<Game>(entityName: "Game")
|
||||
// let accessoriesFR = NSFetchRequest<Accessory>(entityName: "Accessory")
|
||||
// let consoleFR = NSFetchRequest<Console>(entityName: "Console")
|
||||
// let gameSeriesFR = NSFetchRequest<GameSeries>(entityName: "GameSeries")
|
||||
//
|
||||
// let games = try CDManager.shared.viewContext.fetch(gamesFR) as [NSManagedObject]
|
||||
// let accessories = try CDManager.shared.viewContext.fetch(accessoriesFR) as [NSManagedObject]
|
||||
// let consoles = try CDManager.shared.viewContext.fetch(consoleFR) as [NSManagedObject]
|
||||
// let gameSeries = try CDManager.shared.viewContext.fetch(gameSeriesFR) as [NSManagedObject]
|
||||
//
|
||||
var core_data_objects : [NSManagedObject] = []
|
||||
core_data_objects.append(contentsOf: games)
|
||||
core_data_objects.append(contentsOf: accessories)
|
||||
core_data_objects.append(contentsOf: consoles)
|
||||
core_data_objects.append(contentsOf: gameSeries)
|
||||
|
||||
for cdObject in core_data_objects {
|
||||
CDManager.shared.viewContext.delete(cdObject)
|
||||
}
|
||||
}catch let error {
|
||||
print(error)
|
||||
print("LibraryImport::resetDatabase - Reset of Database failes!")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,7 +162,6 @@ class LibraryImport {
|
||||
func importLIB(data : Data) {
|
||||
do {
|
||||
let library = try JSONDecoder().decode(BHLibrary.self, from: data)
|
||||
resetDatabase()
|
||||
|
||||
var gameDict = [UUID:Game]()
|
||||
var accessoryDict = [UUID:Accessory]()
|
||||
@@ -191,6 +194,8 @@ class LibraryImport {
|
||||
}catch let error {
|
||||
print("LibraryImport::importLIB::DATA - Error while importing! '\(error)'")
|
||||
}
|
||||
|
||||
print("Import Successfull")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user