public static IServiceCollection AddUserIdSetter(this IServiceCollection services, IUserIdAccessor userIdAccessor)
 {
     services.TryAddSingleton <UserIdFinderSettings>();
     services.TryAddSingleton(userIdAccessor);
     return(services);
 }
 public UserIdAccessorTraceDecorator(IUserIdAccessor decorated, ILogger <UserIdAccessorTraceDecorator> logger)
 {
     _decorated = decorated ?? throw new ArgumentNullException(nameof(decorated));
     _logger    = logger ?? throw new ArgumentNullException(nameof(logger));
 }
        public static IServiceCollection AddUserIdSetter(this IServiceCollection services, IUserIdAccessor userIdAccessor, Action <UserIdFinderSettings> setupAction = null)
        {
            var userIdFinderSettings = new UserIdFinderSettings();

            setupAction?.Invoke(userIdFinderSettings);

            services.TryAddSingleton(userIdFinderSettings);
            services.TryAddSingleton(userIdAccessor);
            return(services);
        }
 public SetUserIdHeaderMiddleware(RequestDelegate next, IUserIdAccessor userIdAccessor, UserIdFinderSettings userIdFinderSettings)
     : base(next)
 {
     _userIdAccessor       = userIdAccessor ?? throw new ArgumentNullException(nameof(userIdAccessor));
     _userIdFinderSettings = userIdFinderSettings ?? throw new ArgumentNullException(nameof(userIdFinderSettings));
 }