// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddOptions(); var opts = new HarvesterOptions(); Configuration.Bind("Harvester", opts); services.AddSingleton(opts); var opts2 = new SonicElasticStoreOptions(); Configuration.Bind("SonicElasticStore", opts2); services.AddSingleton(opts2); var opts3 = new DataOptions(); Configuration.Bind("Data", opts3); services.AddSingleton(opts3); var opts4 = new TaskRunnerDelays(); Configuration.Bind("ReindexDelays", opts4); services.AddSingleton(opts4); services.AddSingleton(new PolicyRegistry()); services.Configure <IntegrationProperties>(Configuration.GetSection("Integration")); // Add framework services. services.AddMvc(options => { options.EnableEndpointRouting = false; options.Filters.Add(typeof(ProcessCustomerCodeAttribute)); }).AddNewtonsoftJson(options => { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); }); services.AddMemoryCache(); services.AddHttpClient(); var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule(new DefaultModule() { Configuration = Configuration }); containerBuilder.Populate(services); var container = containerBuilder.Build(); return(new AutofacServiceProvider(container)); }
public ProductImporter( HarvesterOptions options, DataOptions dataOptions, ElasticConfiguration configuration, ProductManager manager, ILoggerFactory loggerFactory, IHttpClientFactory httpClientFactory, string customerCode) { _logger = loggerFactory.CreateLogger(GetType()); _manager = manager; _configuration = configuration; _options = options; _dataOptions = dataOptions; _customerCode = customerCode; _factory = httpClientFactory; }