From f5f890e68562e55d4bed16c454c4b4305152b296 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Tue, 31 Jan 2023 12:18:10 +0100 Subject: Migrate to file-scoped namespaces --- Jellyfin.Api/Middleware/ResponseTimeMiddleware.cs | 95 +++++++++++------------ 1 file changed, 47 insertions(+), 48 deletions(-) (limited to 'Jellyfin.Api/Middleware/ResponseTimeMiddleware.cs') diff --git a/Jellyfin.Api/Middleware/ResponseTimeMiddleware.cs b/Jellyfin.Api/Middleware/ResponseTimeMiddleware.cs index 3701d0f45..db3917743 100644 --- a/Jellyfin.Api/Middleware/ResponseTimeMiddleware.cs +++ b/Jellyfin.Api/Middleware/ResponseTimeMiddleware.cs @@ -7,63 +7,62 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Extensions; using Microsoft.Extensions.Logging; -namespace Jellyfin.Api.Middleware +namespace Jellyfin.Api.Middleware; + +/// +/// Response time middleware. +/// +public class ResponseTimeMiddleware { + private const string ResponseHeaderResponseTime = "X-Response-Time-ms"; + + private readonly RequestDelegate _next; + private readonly ILogger _logger; + /// - /// Response time middleware. + /// Initializes a new instance of the class. /// - public class ResponseTimeMiddleware + /// Next request delegate. + /// Instance of the interface. + public ResponseTimeMiddleware( + RequestDelegate next, + ILogger logger) { - private const string ResponseHeaderResponseTime = "X-Response-Time-ms"; - - private readonly RequestDelegate _next; - private readonly ILogger _logger; + _next = next; + _logger = logger; + } - /// - /// Initializes a new instance of the class. - /// - /// Next request delegate. - /// Instance of the interface. - public ResponseTimeMiddleware( - RequestDelegate next, - ILogger logger) - { - _next = next; - _logger = logger; - } + /// + /// Invoke request. + /// + /// Request context. + /// Instance of the interface. + /// Task. + public async Task Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager) + { + var startTimestamp = Stopwatch.GetTimestamp(); - /// - /// Invoke request. - /// - /// Request context. - /// Instance of the interface. - /// Task. - public async Task Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager) + var enableWarning = serverConfigurationManager.Configuration.EnableSlowResponseWarning; + var warningThreshold = serverConfigurationManager.Configuration.SlowResponseThresholdMs; + context.Response.OnStarting(() => { - var startTimestamp = Stopwatch.GetTimestamp(); - - var enableWarning = serverConfigurationManager.Configuration.EnableSlowResponseWarning; - var warningThreshold = serverConfigurationManager.Configuration.SlowResponseThresholdMs; - context.Response.OnStarting(() => + var responseTime = Stopwatch.GetElapsedTime(startTimestamp); + var responseTimeMs = responseTime.TotalMilliseconds; + if (enableWarning && responseTimeMs > warningThreshold && _logger.IsEnabled(LogLevel.Debug)) { - var responseTime = Stopwatch.GetElapsedTime(startTimestamp); - var responseTimeMs = responseTime.TotalMilliseconds; - if (enableWarning && responseTimeMs > warningThreshold && _logger.IsEnabled(LogLevel.Debug)) - { - _logger.LogDebug( - "Slow HTTP Response from {Url} to {RemoteIp} in {Elapsed:g} with Status Code {StatusCode}", - context.Request.GetDisplayUrl(), - context.GetNormalizedRemoteIp(), - responseTime, - context.Response.StatusCode); - } + _logger.LogDebug( + "Slow HTTP Response from {Url} to {RemoteIp} in {Elapsed:g} with Status Code {StatusCode}", + context.Request.GetDisplayUrl(), + context.GetNormalizedRemoteIp(), + responseTime, + context.Response.StatusCode); + } - context.Response.Headers[ResponseHeaderResponseTime] = responseTimeMs.ToString(CultureInfo.InvariantCulture); - return Task.CompletedTask; - }); + context.Response.Headers[ResponseHeaderResponseTime] = responseTimeMs.ToString(CultureInfo.InvariantCulture); + return Task.CompletedTask; + }); - // Call the next delegate/middleware in the pipeline - await this._next(context).ConfigureAwait(false); - } + // Call the next delegate/middleware in the pipeline + await this._next(context).ConfigureAwait(false); } } -- cgit v1.2.3