public static void MigrateFamiliesFailureHandler(Object sender, FailuresProcessingEventArgs args) { MigrationLog log = MigrationLog.Instance; var fa = args.GetFailuresAccessor(); var fhOpts = fa.GetFailureHandlingOptions(); foreach (var fma in fa.GetFailureMessages()) { if (fma.GetSeverity() == FailureSeverity.Warning) { log.AppendLine("!!warning"); log.AppendLine(fma.GetDescriptionText()); args.SetProcessingResult(FailureProcessingResult.Continue); fa.DeleteWarning(fma); } //note: errors are not being generated on file open else if (fma.GetSeverity() == FailureSeverity.Error) { log.AppendLine("!!error"); log.AppendLine(fma.GetDescriptionText()); fhOpts.SetClearAfterRollback(true); fa.SetFailureHandlingOptions(fhOpts); args.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); fa.RollBackPendingTransaction(); } } }
private async Task SaveLogEntry(IMongoDatabase migrationLogDb, JsonFileProperty jsonFile) { var migrationLogs = migrationLogDb.GetCollection <MigrationLog>(_dbSettings.MigrationLogSettings.CollectionName); var newLog = new MigrationLog { Id = ObjectId.GenerateNewId().ToString(), ExecutionDate = DateTime.UtcNow, ScriptFilename = jsonFile.FilePath }; await migrationLogs.InsertOneAsync(newLog); }