@@ -347,11 +347,19 @@ public async Task RestoreBackupAsync(string version, List<string> files, string
347347 // run restore job
348348 var fileOverwrite = FileOverwrite . Ask ;
349349
350+ jobReportCallback . ReportAction ( ActionType . Restore , ! statusDialog ) ;
351+ jobReportCallback . ReportState ( JobState . RUNNING ) ;
352+
353+ IJobReport forwardJobReport = new ForwardJobReport ( jobReportCallback ) ;
354+
350355 foreach ( var file in files )
351356 {
352357 try
353358 {
354- var task = backupService . StartRestore ( version , file , destination , ref jobReportCallback , cancellationToken , fileOverwrite , ! statusDialog ) ;
359+ jobReportCallback . ReportProgress ( files . Count , files . IndexOf ( file ) + 1 ) ;
360+
361+ // restore file
362+ var task = backupService . StartRestore ( version , file , destination , ref forwardJobReport , cancellationToken , fileOverwrite , ! statusDialog ) ;
355363 await task . ConfigureAwait ( true ) ;
356364 }
357365 catch
@@ -373,6 +381,9 @@ public async Task RestoreBackupAsync(string version, List<string> files, string
373381 }
374382 }
375383
384+ ( ( ForwardJobReport ) forwardJobReport ) . ForwardExceptions ( ! statusDialog ) ;
385+ jobReportCallback . ReportState ( JobState . FINISHED ) ;
386+
376387 // finish
377388 HandleFinishedStatusDialog ( statusDialog ) ;
378389 }
@@ -394,6 +405,7 @@ public async Task DeleteBackupAsync(string version, bool statusDialog = true)
394405 }
395406
396407 // run delete job
408+
397409 try
398410 {
399411 var task = backupService . StartDelete ( version , ref jobReportCallback , cancellationToken , ! statusDialog ) ;
@@ -425,11 +437,16 @@ public async Task DeleteBackupsAsync(List<string> versions, bool statusDialog =
425437 }
426438
427439 // run delete job
440+ jobReportCallback . ReportAction ( ActionType . Delete , ! statusDialog ) ;
441+ jobReportCallback . ReportState ( JobState . RUNNING ) ;
442+
443+ IJobReport forwardJobReport = new ForwardJobReport ( jobReportCallback ) ;
444+
428445 foreach ( var version in versions )
429446 {
430447 try
431448 {
432- var task = backupService . StartDelete ( version , ref jobReportCallback , cancellationToken , ! statusDialog ) ;
449+ var task = backupService . StartDelete ( version , ref forwardJobReport , cancellationToken , ! statusDialog ) ;
433450 await task . ConfigureAwait ( true ) ;
434451 }
435452 catch
@@ -443,6 +460,9 @@ public async Task DeleteBackupsAsync(List<string> versions, bool statusDialog =
443460 }
444461 }
445462
463+ ( ( ForwardJobReport ) forwardJobReport ) . ForwardExceptions ( ! statusDialog ) ;
464+ jobReportCallback . ReportState ( JobState . FINISHED ) ;
465+
446466 // finish
447467 HandleFinishedStatusDialog ( statusDialog ) ;
448468 }
0 commit comments