using System; namespace FastGithub.Scanner { sealed class GithubContextStatistics { /// /// 扫描总次数 /// public int TotalScanCount { get; private set; } /// /// 扫描总成功次数 /// public int TotalSuccessCount { get; private set; } /// /// 扫描总耗时 /// public TimeSpan TotalSuccessElapsed { get; private set; } public void SetScanFailure() { this.TotalScanCount += 1; } public void SetScanSuccess(TimeSpan elapsed) { this.TotalScanCount += 1; this.TotalSuccessCount += 1; this.TotalSuccessElapsed = this.TotalSuccessElapsed.Add(elapsed); } /// /// 获取成功率 /// /// public double GetSuccessRate() { return this.TotalScanCount > 0 ? (double)this.TotalSuccessCount / this.TotalScanCount : 0d; } /// /// 获取平均耗时 /// /// public TimeSpan GetAvgElapsed() { return this.TotalScanCount > 0 ? this.TotalSuccessElapsed / this.TotalScanCount : TimeSpan.MaxValue; } } }