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;
}
}
}