using Microsoft.Extensions.DependencyInjection;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
namespace FastGithub.Scanner.ScanMiddlewares
{
///
/// 扫描统计中间件
///
[Service(ServiceLifetime.Singleton)]
sealed class StatisticsMiddleware : IMiddleware
{
///
/// 记录扫描结果
///
///
///
///
public async Task InvokeAsync(GithubContext context, Func next)
{
var stopwatch = new Stopwatch();
try
{
stopwatch.Start();
await next();
}
finally
{
stopwatch.Stop();
}
context.History.Add(context.Available, stopwatch.Elapsed);
}
}
}