Пример #1
0
        private static void RegisterTypes(Container container)
        {
            #region Configuration
            container.RegisterSingleton<IConfigurationProvider, AppSettingsConfigurationProvider>();
            #endregion

            #region Azure
            container.RegisterFactory<AzureOptions, AzureOptionsFactory>(Lifestyle.Singleton);

            container.Register<IAzureContainerClient, AzureContainerClient>();

            container.Register<IBlobClient, AzureBlobClient>();
            container.Register<ITableClient, AzureTableClient>();
            container.Register<IQueueClient, AzureQueueClient>();

            container.Register<IAzureClient, AzureClient>();
            #endregion
        }
Пример #2
0
        private static void RegisterTypes(Container container)
        {
            #region Configuration
            container.RegisterSingleton<IConfigurationProvider, AppSettingsConfigurationProvider>();

            container.RegisterSingleton<IConverter<DynamicTableEntity, AwsOptions>, DynamicAwsOptionsConverter>();
            container.RegisterSingleton<IOptionsProvider<AwsOptions[]>, AzureAwsOptionsProvider>();
            container.RegisterDecorator<IOptionsProvider<AwsOptions[]>, LazyOptionsProviderAdapter<AwsOptions[]>>(Lifestyle.Singleton);
            container.RegisterFactory<AwsOptions, RoundrobinAwsOptionsFactory>(Lifestyle.Singleton);
            #endregion

            #region Providers
            container.RegisterSingleton<IDateTimeProvider, UtcDateTimeProvider>();
            #endregion

            #region Scheduler
            container.RegisterFactory<TaskSchedulerSettings, TaskSchedulerSettingsFactory>(Lifestyle.Singleton);
            container.RegisterFactory<ITaskScheduler, TaskSchedulerSettings, DelayTaskSchedulerFactory>(Lifestyle.Singleton);
            container.RegisterSingleton<IScheduler>(Scheduler.Default);
            container.RegisterSingleton<ITaskScheduler, DelayTaskScheduler>();
            #endregion

            #region Http
            container.Register<HttpClient>(() => HttpClientFactory.Create());
            container.Register<IHttpClient, HttpClientAdapter>();
            #endregion

            #region Azure
            container.RegisterFactory<AzureOptions, AzureOptionsFactory>(Lifestyle.Singleton);

            container.Register<IAzureContainerClient, AzureContainerClient>();

            container.Register<IBlobClient, AzureBlobClient>();
            container.Register<ITableClient, AzureTableClient>();
            container.Register<IQueueClient, AzureQueueClient>();
            container.Register<IAzureClient, AzureClient>();

            container.Register<IConverter<Category, string>, JsonCategoryConverter>();
            container.Register<IConverter<string, Product>, JsonProductConverter>();
            container.Register<IAzureCategoryProvider, AzureCategoryProvider>();
            #endregion

            #region Amazon
            container.Register<ITagGenerator, RandomTagGenerator>();
            container.Register<IArgumentBuilder, AwsArgumentBuilder>();
            container.Register<IPipeline<string>, PercentUrlEncodingPipeline>();
            container.Register<IUrlEncoder, PercentUrlEncoder>();
            container.Register<IQueryBuilder, EncodedQueryBuilder>();
            container.RegisterFactory<System.Security.Cryptography.HashAlgorithm, AwsAlgorithmFactory>();
            container.Register<IQuerySigner, AwsQuerySigner>();
            container.Register<IUrlBuilder, AwsUrlBuilder>();

            container.RegisterFactory<IItemResponse, string, XmlItemResponseFactory>();
            container.Register<IPipeline<Product, XElement, SearchCriteria>, ResponseGroupProductPipeline>(Lifestyle.Singleton);
            container.RegisterFactory<Product, XElement, SearchCriteria, XmlProductFactory>();
            container.Register<IFilter<XElement>, PrimaryVariantlItemFilter>();

            container.Register<IAwsClient, XmlAwsClient>();

            container.Register<IAwsProductProvider, AwsProductProvider>();
            #endregion
        }