Changeset 2713


Ignore:
Timestamp:
5/25/2012 5:40:19 AM (3 years ago)
Author:
lowjoel
Message:

Query for the status of reports after we have uploaded them.

Location:
trunk/eraser/Eraser.BlackBox
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/eraser/Eraser.BlackBox/BlackBoxReportUploader.cs

    r2709 r2713  
    9393        /// submitted before. 
    9494        /// </summary> 
     95        [Obsolete] 
    9596        public bool IsNew 
     97        { 
     98            get 
     99            { 
     100                return Status == ReportStatus.New; 
     101            } 
     102        } 
     103 
     104        /// <summary> 
     105        /// Gets the status of the report. 
     106        /// </summary> 
     107        public ReportStatus Status 
    96108        { 
    97109            get 
     
    100112                XmlDocument result = QueryServer("status", null, 
    101113                    GetStackTraceField(Report.StackTrace).ToArray()); 
    102                  
     114 
    103115                //Parse the result document 
    104116                XmlNode node = result.SelectSingleNode("/crashReport"); 
    105117                string reportStatus = node.Attributes.GetNamedItem("status").Value; 
    106                 switch (reportStatus) 
    107                 { 
    108                     case "exists": 
    109                         return false; 
    110  
    111                     case "new": 
    112                         return true; 
    113  
    114                     default: 
    115                         throw new InvalidDataException( 
    116                             "Unknown crash report server response."); 
     118                try 
     119                { 
     120                    return (ReportStatus)Enum.Parse(typeof(ReportStatus), reportStatus, true); 
     121                } 
     122                catch (ArgumentException e) 
     123                { 
     124                    throw new InvalidDataException( 
     125                        "Unknown crash report server response.", e); 
    117126                } 
    118127            } 
     
    355364        private readonly string ReportBaseName; 
    356365    } 
     366 
     367    /// <summary> 
     368    /// Statuses of reports on the server. 
     369    /// </summary> 
     370    public enum ReportStatus 
     371    { 
     372        /// <summary> 
     373        /// The report has not been reported before. 
     374        /// </summary> 
     375        New, 
     376 
     377        /// <summary> 
     378        /// The report has been reported before and pending a resolution. 
     379        /// </summary> 
     380        Exists, 
     381 
     382        /// <summary> 
     383        /// The report has been resolved. 
     384        /// </summary> 
     385        Resolved 
     386    } 
    357387} 
  • trunk/eraser/Eraser.BlackBox/BlackBoxUploadForm.cs

    r2707 r2713  
    8181                //Otherwise check for solutions. 
    8282                else 
    83                     ; 
     83                    CheckStatus(reports[i], overallProgress, reportProgress); 
    8484            } 
    8585        } 
     
    109109                        throw new OperationCanceledException(); 
    110110                }); 
     111        } 
     112 
     113        private void CheckStatus(BlackBoxReport report, SteppedProgressManager overallProgress, 
     114            ProgressManager reportProgress) 
     115        { 
     116            //Upload the report. 
     117            UploadWorker.ReportProgress((int)(overallProgress.Progress * 100), 
     118                S._("Checking for solution for {0}...", report.Name)); 
     119 
     120            BlackBoxReportUploader uploader = new BlackBoxReportUploader(report); 
     121            if (uploader.Status == ReportStatus.Resolved) 
     122                ; 
    111123        } 
    112124 
Note: See TracChangeset for help on using the changeset viewer.