public async Task Invoke(IDictionary <string, object> environment) { if (useOtherMiddleware) { await engine.ProcessRequest(environment).ConfigureAwait(true); // keep context await next(environment).ConfigureAwait(false); } else { await engine.ProcessRequest(environment).ConfigureAwait(false); } }
public async Task Invoke(HttpContext httpContext) { var useOtherMiddleware = await engine.ProcessRequest(httpContext).ConfigureAwait(true); // keep context if (useOtherMiddleware) { await next(httpContext).ConfigureAwait(false); } }