public async Task BackupRestoreTest() { var backupName = $"{Guid.NewGuid()}.bak"; Task BackupPart() { var backupSvc = new FbBackup(); backupSvc.ConnectionString = BuildServicesConnectionString(ServerType, Compression, WireCrypt, true); backupSvc.Options = FbBackupFlags.IgnoreLimbo; backupSvc.BackupFiles.Add(new FbBackupFile(backupName, 2048)); backupSvc.Verbose = true; backupSvc.Statistics = FbBackupRestoreStatistics.TotalTime | FbBackupRestoreStatistics.TimeDelta; backupSvc.ServiceOutput += ServiceOutput; return(backupSvc.ExecuteAsync()); } Task RestorePart() { var restoreSvc = new FbRestore(); restoreSvc.ConnectionString = BuildServicesConnectionString(ServerType, Compression, WireCrypt, true); restoreSvc.Options = FbRestoreFlags.Create | FbRestoreFlags.Replace; restoreSvc.PageSize = FbTestsSetup.PageSize; restoreSvc.Verbose = true; restoreSvc.Statistics = FbBackupRestoreStatistics.TotalTime | FbBackupRestoreStatistics.TimeDelta; restoreSvc.BackupFiles.Add(new FbBackupFile(backupName, 2048)); restoreSvc.ServiceOutput += ServiceOutput; return(restoreSvc.ExecuteAsync()); } await BackupPart(); await RestorePart(); // test the database was actually restored fine await Connection.OpenAsync(); await Connection.CloseAsync(); }