public async Task Invoke(HttpContext context, ILogger logger, IApiContextAccessor contextAccessor /* other scoped dependencies */) { context.Request.Headers.TryGetValue("UserId", out var uid); contextAccessor.CurrentApiContext = new ApiContext(uid); await next(context); }
public static ApiContext GetOrCreate(this IApiContextAccessor apiContextAccessor, Func <ApiContext> fac = null) { if (apiContextAccessor.CurrentApiContext == null) { apiContextAccessor.CurrentApiContext = fac == null ? new ApiContext() : fac(); } return(apiContextAccessor.CurrentApiContext); }