public static IApiRateLimiterUserIdServiceRegistration AddMemoryCache( this IApiRateLimiterUserIdServiceRegistration servicef) { var service = (ApiRateLimiterUserIdServiceRegistration)servicef; service.ServiceCollection.AddSingleton <IAPIRateLimiterUserIdStorageProvider, MemoryCacheProvider>(); return(servicef); }
public static IApiRateLimiterUserIdServiceRegistrationBackupProvider AddRedisCacheProvider(this IApiRateLimiterUserIdServiceRegistration servicef, Func <string> connectionString) { var service = (ApiRateLimiterUserIdServiceRegistration)servicef; string redisConnectionString = connectionString(); var options = new RedisWithBackupStorageOptions { Prefix = service.Options.CachePrefix, RedisConnectionString = redisConnectionString }; service.ServiceCollection.AddSingleton(options); service.ServiceCollection.AddSingleton <IAPIRateLimiterUserIdStorageProvider, RedisWithBackupStorage>(); return(service); }