using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; namespace Lidarr.Http.Middleware { public class BufferingMiddleware { private readonly RequestDelegate _next; private readonly List _urls; public BufferingMiddleware(RequestDelegate next, List urls) { _next = next; _urls = urls; } public async Task InvokeAsync(HttpContext context) { if (_urls.Any(p => context.Request.Path.StartsWithSegments(p, StringComparison.OrdinalIgnoreCase))) { context.Request.EnableBuffering(); } await _next(context); } } }