Beispiel #1
0
        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>());
        }
Beispiel #3
0
        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>();
        }