def _processCSVUploadAsync(self, path, importCSVMode, databaseManager, sendCSVUploadResultToClient, logger): errorCollection = list() # - parsing # - backup # - append or replace resultOfPrintJobs = CSVExportImporter.parseCSV(path, errorCollection, logger) if (len(resultOfPrintJobs) > 0): # we could import some jobs # TODO info to user: about how many parsed # - backup databaseManager.backupDatabaseFile() # TODO info to user: backup done # - import mode append/replace if (SettingsKeys.KEY_IMPORTCSV_MODE_REPLACE == importCSVMode): # delete old database and init a clean database databaseManager.reCreateDatabase() # TODO info to user: import mode # - insert all printjobs in database for printJob in resultOfPrintJobs: # TODO info to user: insert printJob number print(printJob) pass else: errorCollection.append("Nothing to import") sendCSVUploadResultToClient("CSV-Import result", errorCollection) pass
def _processCSVUploadAsync(self, path, importCSVMode, databaseManager, cameraManager, backupFolder, sendCSVUploadStatusToClient, logger): errorCollection = list() # - parsing # - backup # - append or replace def updateParsingStatus(lineNumber): # importStatus, currenLineNumber, backupFilePath, backupSnapshotFilePath, successMessages, errorCollection sendCSVUploadStatusToClient("running", lineNumber, "", "", "", errorCollection) resultOfPrintJobs = CSVExportImporter.parseCSV(path, updateParsingStatus, errorCollection, logger) importModeText = "append" backupDatabaseFilePath = None backupSnapshotFilePath = None if (len(resultOfPrintJobs) > 0): # we could import some jobs # - backup backupDatabaseFilePath = databaseManager.backupDatabaseFile( backupFolder) backupSnapshotFilePath = cameraManager.backupAllSnapshots( backupFolder) # - import mode append/replace if (SettingsKeys.KEY_IMPORTCSV_MODE_REPLACE == importCSVMode): # delete old database and init a clean database databaseManager.reCreateDatabase() cameraManager.reCreateSnapshotFolder() importModeText = "fully replaced" # - insert all printjobs in database currentPrintJobNumber = 0 for printJob in resultOfPrintJobs: currentPrintJobNumber = currentPrintJobNumber + 1 updateParsingStatus(currentPrintJobNumber) databaseManager.insertPrintJob(printJob) # print(printJob) pass else: errorCollection.append("Nothing to import!") successMessage = "" if (len(errorCollection) == 0): successMessage = "All data is successful " + importModeText + " with '" + str( len(resultOfPrintJobs)) + "' print jobs." else: successMessage = "Some error(s) occurs! Maybe you need to manually rollback the database!" sendCSVUploadStatusToClient("finished", "", backupDatabaseFilePath, backupSnapshotFilePath, successMessage, errorCollection) pass