public async Task InvokeAsync(HttpContext context, IRequestAnalyzer requestAnalyzer) { if (context == null) { throw new ArgumentNullException("context"); } if (requestAnalyzer == null) { throw new ArgumentNullException("requestAnalyzer"); } if (_config == null) { throw new Exception("SpeedBumpConfig was not provided"); } if (_config.Enabled) { var delay = await requestAnalyzer.CalculateMillisecondDelay(context.Request); await Task.Delay(delay); } // TODO // forward request to backing service, using internal DNS or lookup service? }
public OfflineApiPortService(IApiCatalogLookup lookup, IRequestAnalyzer requestAnalyzer, ITargetMapper mapper, ICollection <IReportWriter> reportWriters, ITargetNameParser targetNameParser) { _lookup = lookup; _requestAnalyzer = requestAnalyzer; _mapper = mapper; _reportWriters = reportWriters; _defaultTargets = new HashSet <FrameworkName>(targetNameParser.DefaultTargets); }
public OfflineApiPortService(IApiCatalogLookup lookup, IRequestAnalyzer requestAnalyzer, ITargetMapper mapper, ICollection <IReportWriter> reportWriters, ITargetNameParser targetNameParser, IApiRecommendations apiRecommendations) { _lookup = lookup; _requestAnalyzer = requestAnalyzer; _mapper = mapper; _reportWriters = reportWriters; _defaultTargets = new HashSet <FrameworkName>(targetNameParser.DefaultTargets); _searcher = new StringContainsSearcher(lookup); _apiRecommendations = apiRecommendations; }