Changeset 1616


Ignore:
Timestamp:
01/19/10 08:51:50 (5 years ago)
Author:
lowjoel
Message:

Use the Eraser.Util.ProgressManager? classes to calculate progress. Addresses #307: Eraser Updater restructuring

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/CodeReview/Eraser/BlackBoxUploadForm.cs

    r1615 r1616  
    6565        { 
    6666            IList<BlackBoxReport> reports = (IList<BlackBoxReport>)e.Argument; 
     67            SteppedProgressManager progress = new SteppedProgressManager(); 
     68 
    6769            for (int i = 0; i < reports.Count; ++i) 
    6870            { 
    69                 //Calculate the base progress percentage for this job. 
    70                 int progressPerReport = 100 / reports.Count; 
    71                 int baseProgress = i * progressPerReport; 
    72                 int stepsPerReport = 2; 
     71                //Create the progress object that will handle the progress for this report. 
     72                SteppedProgressManager reportProgress = new SteppedProgressManager(); 
     73                progress.Steps.Add(new SteppedProgressManagerStep(reportProgress, 
     74                    1.0f / reports.Count)); 
    7375 
    7476                BlackBoxReportUploader uploader = new BlackBoxReportUploader(reports[i]); 
    7577 
    7678                //Check that a similar report has not yet been uploaded. 
    77                 UploadWorker.ReportProgress(baseProgress, 
     79                UploadWorker.ReportProgress((int)(progress.Progress * 100), 
    7880                    S._("Checking for status of report {0}...", reports[i].Name)); 
    7981                if (!uploader.ReportIsNew()) 
     
    8385                    throw new OperationCanceledException(); 
    8486 
    85                 //No similar reports have been uploaded. Compress the report. 
    86                 UploadWorker.ReportProgress(baseProgress, 
    87                     S._("Compressing Report {0}: {1}%", reports[i].Name, 0)); 
    88                 uploader.Compress(delegate(object from, ProgressChangedEventArgs progress) 
    89                     { 
    90                         UploadWorker.ReportProgress(baseProgress + 
    91                             progress.ProgressPercentage * progressPerReport / 100 / stepsPerReport, 
    92                             S._("Compressing Report {0}: {1}%", 
    93                                 reports[i].Name, progress.ProgressPercentage)); 
    94  
    95                         if (UploadWorker.CancellationPending) 
    96                             throw new OperationCanceledException(); 
    97                     }); 
    98  
    99                 //Upload the report. 
    100                 UploadWorker.ReportProgress(baseProgress + progressPerReport / 2, 
    101                     S._("Uploading Report {0}: {1}%", reports[i].Name, 0)); 
    102                 uploader.Upload(delegate(object from, ProgressChangedEventArgs progress) 
    103                     { 
    104                         UploadWorker.ReportProgress(baseProgress + progressPerReport / stepsPerReport + 
    105                             progress.ProgressPercentage * progressPerReport / 100 / stepsPerReport, 
    106                             S._("Uploading Report {0}: {1}%", 
    107                                 reports[i].Name, progress.ProgressPercentage)); 
    108  
    109                         if (UploadWorker.CancellationPending) 
    110                             throw new OperationCanceledException(); 
    111                     }); 
     87                { 
     88                    //No similar reports have been uploaded. Compress the report. 
     89                    ProgressManager step = new ProgressManager(); 
     90                    reportProgress.Steps.Add(new SteppedProgressManagerStep(step, 0.5f)); 
     91                    UploadWorker.ReportProgress((int)(progress.Progress * 100), 
     92                        S._("Compressing Report {0}: {1}%", reports[i].Name, 0)); 
     93 
     94                    uploader.Compress(delegate(object from, ProgressChangedEventArgs e2) 
     95                        { 
     96                            step.Completed = e2.ProgressPercentage; 
     97                            step.Total = 100; 
     98                            UploadWorker.ReportProgress((int)(progress.Progress * 100), 
     99                                S._("Compressing Report {0}: {1}%", 
     100                                    reports[i].Name, e2.ProgressPercentage)); 
     101 
     102                            if (UploadWorker.CancellationPending) 
     103                                throw new OperationCanceledException(); 
     104                        }); 
     105                } 
     106                { 
     107                    //Upload the report. 
     108                    ProgressManager step = new ProgressManager(); 
     109                    reportProgress.Steps.Add(new SteppedProgressManagerStep(step, 0.5f)); 
     110                    UploadWorker.ReportProgress((int)(progress.Progress * 100), 
     111                        S._("Uploading Report {0}: {1}%", reports[i].Name, 0)); 
     112                    uploader.Upload(delegate(object from, ProgressChangedEventArgs e2) 
     113                        { 
     114                            step.Completed = e2.ProgressPercentage; 
     115                            step.Total = 100; 
     116                            UploadWorker.ReportProgress((int)progress.Progress, 
     117                                S._("Uploading Report {0}: {1}%", 
     118                                    reports[i].Name, e2.ProgressPercentage)); 
     119 
     120                            if (UploadWorker.CancellationPending) 
     121                                throw new OperationCanceledException(); 
     122                        }); 
     123                } 
    112124            } 
    113125        } 
Note: See TracChangeset for help on using the changeset viewer.