public static void AddAdobeServices(this IServiceCollection services, AdobeSettings settings = null) { AddAuthorizationService(services, settings); services.AddTransient <DimensionService>(); services.AddTransient <MetricService>(); services.AddTransient <ReportService>(); services.AddTransient <SegmentService>(); services.AddTransient <UserService>(); services.AddHttpClient <DimensionService>(); services.AddHttpClient <MetricService>(); services.AddHttpClient <ReportService>(); services.AddHttpClient <SegmentService>(); services.AddHttpClient <UserService>(); }
public void AdobeClientStore_DistributedCache_ShouldBeAvailable() { // Arrange var serviceCollection = new ServiceCollection(); var settings = new AdobeSettings { ClientStore = ClientStoreType.DistributedCache }; serviceCollection.AddAdobeServices(settings); serviceCollection.AddTransient(sp => new Mock <IDistributedCache>().Object); var serviceProvider = serviceCollection.BuildServiceProvider(); // Act var service = serviceProvider.GetService <IAdobeClientStore>(); // Assert Assert.That(service, Is.Not.Null.And.TypeOf <AdobeDistributedClientStore>()); }
private static void AddAuthorizationService(IServiceCollection services, AdobeSettings settings = null) { if (settings == null) { settings = new AdobeSettings(); } if (settings.ClientStore == ClientStoreType.Singleton) { services.AddSingleton <IAdobeClientStore, AdobeClientStore>(); } else if (settings.ClientStore == ClientStoreType.MemoryCache) { services.AddScoped <IAdobeClientStore, AdobeMemoryClientStore>( sp => { var cache = sp.GetRequiredService <IMemoryCache>(); var cacheSettings = new MemoryCacheEntryOptions(); if (settings.AbsoluteExpiration.HasValue) { cacheSettings.SetAbsoluteExpiration(settings.AbsoluteExpiration.Value); } if (settings.SlidingExpiration.HasValue) { cacheSettings.SetSlidingExpiration(settings.SlidingExpiration.Value); } if (settings.Priority.HasValue) { cacheSettings.SetPriority(settings.Priority.Value); } return(new AdobeMemoryClientStore(cache, cacheSettings, settings.CacheKey)); }); } else if (settings.ClientStore == ClientStoreType.DistributedCache) { services.AddScoped <IAdobeClientStore, AdobeDistributedClientStore>( sp => { var cache = sp.GetRequiredService <IDistributedCache>(); var cacheSettings = new DistributedCacheEntryOptions(); if (settings.AbsoluteExpiration.HasValue) { cacheSettings.SetAbsoluteExpiration(settings.AbsoluteExpiration.Value); } if (settings.SlidingExpiration.HasValue) { cacheSettings.SetSlidingExpiration(settings.SlidingExpiration.Value); } return(new AdobeDistributedClientStore(cache, cacheSettings, settings.CacheKey)); }); } services.AddTransient <AdobeAuthorizationService>(); }