Exemplo n.º 1
0
        protected override void Load(ContainerBuilder builder)
        {
            var apiUrl         = _configuration["api:url"];
            var apiAccessToken = _configuration["api:access_token"];

            var suppliers = new List <SupplierSettings>();

            _configuration.GetSection("suppliers").Bind(suppliers);

            var colorMappings = new List <ColorMapping>();

            _configuration.GetSection("color_mappings").Bind(colorMappings);

            var ignoredProducts = new List <string>();

            _configuration.GetSection("ignored_products").Bind(ignoredProducts);

            var robotConfig = new RobotConfiguration(apiUrl, apiAccessToken, suppliers, colorMappings, ignoredProducts);

            builder.RegisterInstance(robotConfig).As <IRobotConfiguration>();
            builder.RegisterType <ColorBuilder>().As <IColorBuilder>();
            builder.RegisterType <Differ>().As <IDiffer>();
            builder.RegisterType <PriceManagerBuilder>().As <IPriceManagerBuilder>();
            builder.RegisterType <PriceWebServiceProcessor>().As <IProcessor>();
            builder.RegisterInstance(_startArgs).AsSelf();

            Log.Debug("Connecting to API");
            var apiFactory = new ShopApiFactory();

            try
            {
                apiFactory.InitFactories(apiUrl, apiAccessToken).Wait();
            }
            catch (Exception e)
            {
                Log.Fatal(e, "Unable to connect to API");
                throw;
            }

            builder.RegisterInstance(apiFactory).As <IShopApiFactory>();

            builder.RegisterType <ProductCreator>().As <IProductCreator>();
            builder.RegisterType <ProductUpdater>().As <IProductUpdater>();
            builder.RegisterType <ProductRemover>().As <IProductRemover>();

            builder.RegisterType <CategoryProcessor>().As <ICategoryProcessor>();
            builder.RegisterType <CombinationsProcessor>().As <ICombinationsProcessor>();
            builder.RegisterType <FeatureProcessor>().As <IFeatureProcessor>();
            builder.RegisterType <ImageProcessor>().As <IImageProcessor>();
            builder.RegisterType <ManufacturerProcessor>().As <IManufacturerProcessor>();
            builder.RegisterType <StockProcessor>().As <IStockProcessor>();
            builder.RegisterType <SupplierProcessor>().As <ISupplierProcessor>();

            builder.RegisterType <Robot>().As <IRobot>();
        }
 public SupplierProcessor(ShopApiFactory apiFactory)
 {
     _apiFactory = apiFactory;
 }
 public FeatureProcessor(ShopApiFactory apiFactory)
 {
     _apiFactory = apiFactory;
 }
 public CombinationsProcessor(ShopApiFactory apiFactory)
 {
     _apiFactory = apiFactory;
 }
 public ManufacturerProcessor(ShopApiFactory apiFactory)
 {
     _apiFactory = apiFactory;
 }
 public CategoryProcessor(ShopApiFactory apiFactory)
 {
     _apiFactory = apiFactory;
 }
 public ImageProcessor(ShopApiFactory apiFactory)
 {
     _apiFactory = apiFactory;
 }
 public StockProcessor(ShopApiFactory apiFactory)
 {
     _apiFactory = apiFactory;
     _combinationProcessor = new CombinationsProcessor(apiFactory);
 }