public static void RegisterComponents() { var container = new UnityContainer(); // register all your components with the container here // it is NOT necessary to register your controllers var apiClient = new HmacApiClient(APIAppSettings.BasePath, APIAppSettings.AppId, APIAppSettings.ApiKey); container.RegisterInstance<ApiClient>(apiClient); container.RegisterInstance(new Configuration(apiClient)); // e.g. container.RegisterType<ITestService, TestService>(); GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container); }
protected ApiClient GetApiClient() { var apiClient = new HmacApiClient(APIAppSettings.BasePath, APIAppSettings.AppId, APIAppSettings.ApiKey); return apiClient; }
public void Configuration(IAppBuilder app) { UnityWebActivator.Start(); var container = UnityConfig.GetConfiguredContainer(); //Caching configuration (system runtime memory handle) var cacheManager = CacheFactory.FromConfiguration<object>("storefrontCache"); container.RegisterInstance<ICacheManager<object>>(cacheManager); //Because CacheManagerOutputCacheProvider used diff cache manager instance need translate clear region by this way //https://github.com/MichaCo/CacheManager/issues/32 cacheManager.OnClearRegion += (sender, region) => { CacheManagerOutputCacheProvider.Cache.ClearRegion(region.Region); }; cacheManager.OnClear += (sender, args) => { CacheManagerOutputCacheProvider.Cache.Clear(); }; // Workaround for old storefront base URL: remove /api/ suffix since it is already included in every resource address in VirtoCommerce.Client library. var baseUrl = ConfigurationManager.ConnectionStrings["VirtoCommerceBaseUrl"].ConnectionString; if (baseUrl != null && baseUrl.EndsWith("/api/", StringComparison.OrdinalIgnoreCase)) { var apiPosition = baseUrl.LastIndexOf("/api/", StringComparison.OrdinalIgnoreCase); if (apiPosition >= 0) { baseUrl = baseUrl.Remove(apiPosition); } } var apiClient = new HmacApiClient(baseUrl, ConfigurationManager.AppSettings["vc-public-ApiAppId"], ConfigurationManager.AppSettings["vc-public-ApiSecretKey"]); container.RegisterInstance<ApiClient>(apiClient); container.RegisterType<IStoreModuleApi, StoreModuleApi>(); container.RegisterType<IVirtoCommercePlatformApi, VirtoCommercePlatformApi>(); container.RegisterType<ICustomerManagementModuleApi, CustomerManagementModuleApi>(); container.RegisterType<ICommerceCoreModuleApi, CommerceCoreModuleApi>(); container.RegisterType<ICustomerManagementModuleApi, CustomerManagementModuleApi>(); container.RegisterType<ICatalogModuleApi, CatalogModuleApi>(); container.RegisterType<IPricingModuleApi, PricingModuleApi>(); container.RegisterType<IInventoryModuleApi, InventoryModuleApi>(); container.RegisterType<IShoppingCartModuleApi, ShoppingCartModuleApi>(); container.RegisterType<IOrderModuleApi, OrderModuleApi>(); container.RegisterType<IMarketingModuleApi, MarketingModuleApi>(); container.RegisterType<ICMSContentModuleApi, CMSContentModuleApi>(); container.RegisterType<ISearchModuleApi, SearchModuleApi>(); container.RegisterType<IMarketingService, MarketingServiceImpl>(); container.RegisterType<IPromotionEvaluator, PromotionEvaluator>(); container.RegisterType<ICartBuilder, CartBuilder>(); container.RegisterType<ICatalogSearchService, CatalogSearchServiceImpl>(); container.RegisterType<IAuthenticationManager>(new InjectionFactory((context) => HttpContext.Current.GetOwinContext().Authentication)); container.RegisterType<IStorefrontUrlBuilder, StorefrontUrlBuilder>(new PerRequestLifetimeManager()); if (_managerAssembly != null) { AreaRegistration.RegisterAllAreas(); CallChildConfigure(app, _managerAssembly, "VirtoCommerce.Platform.Web.Startup", "Configuration", "~/areas/admin", "admin/"); } // Create new work context for each request container.RegisterType<WorkContext, WorkContext>(new PerRequestLifetimeManager()); var shopifyLiquidEngine = new ShopifyLiquidThemeEngine(cacheManager, () => container.Resolve<WorkContext>(), () => container.Resolve<IStorefrontUrlBuilder>(), HostingEnvironment.MapPath("~/App_data/themes"), "~/themes/assets", "~/themes/global/assets"); container.RegisterInstance(shopifyLiquidEngine); //Register liquid engine ViewEngines.Engines.Add(new DotLiquidThemedViewEngine(container.Resolve<ShopifyLiquidThemeEngine>())); // Shopify model binders convert Shopify form fields with bad names to VirtoCommerce model properties. container.RegisterType<IModelBinderProvider, ShopifyModelBinderProvider>("shopify"); //Static content service var staticContentService = new StaticContentServiceImpl(HostingEnvironment.MapPath("~/App_data/Pages"), new Markdown(), shopifyLiquidEngine, cacheManager); container.RegisterInstance<IStaticContentService>(staticContentService); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes, () => container.Resolve<WorkContext>(), container.Resolve<ICommerceCoreModuleApi>(), container.Resolve<IStaticContentService>(), cacheManager); AuthConfig.ConfigureAuth(app); app.Use<WorkContextOwinMiddleware>(container); app.UseStageMarker(PipelineStage.ResolveCache); }
protected ApiClient GetApiClient() { var baseUrl = ConfigurationManager.ConnectionStrings["VirtoCommerceBaseUrl"].ConnectionString; var apiClient = new HmacApiClient(baseUrl, ConfigurationManager.AppSettings["vc-public-ApiAppId"], ConfigurationManager.AppSettings["vc-public-ApiSecretKey"]); return apiClient; }