private IMarketingExtensionManager GetPromotionExtensionManager() { var retVal = new DefaultMarketingExtensionManagerImpl(); retVal.PromotionDynamicExpressionTree = GetDynamicExpression(); return(retVal); }
private static IPromotionService GetMarketingService() { Func <IMarketingRepository> foundationRepositoryFactory = () => new MarketingRepositoryImpl("VirtoCommerce", new EntityPrimaryKeyGeneratorInterceptor(), new AuditableInterceptor()); var promotionExtensionManager = new DefaultMarketingExtensionManagerImpl(); var retVal = new PromotionServiceImpl(foundationRepositoryFactory, promotionExtensionManager); return(retVal); }
private IPromotionService GetMarketingService() { Func <IMarketingRepository> foundationRepositoryFactory = () => GetRepository(); var promotionExtensionManager = new DefaultMarketingExtensionManagerImpl(); var retVal = new PromotionServiceImpl(foundationRepositoryFactory, promotionExtensionManager); return(retVal); }
private IPromotionService GetMarketingService() { var promotionExtensionManager = new DefaultMarketingExtensionManagerImpl(); var cacheManager = new Moq.Mock <ICacheManager <object> >(); var retVal = new PromotionServiceImpl(GetRepository); return(retVal); }
private IPromotionService GetMarketingService() { Func <IMarketingRepository> foundationRepositoryFactory = () => GetRepository(); var promotionExtensionManager = new DefaultMarketingExtensionManagerImpl(); var cacheManager = new Moq.Mock <ICacheManager <object> >(); var retVal = new PromotionServiceImpl(foundationRepositoryFactory, promotionExtensionManager, cacheManager.Object); return(retVal); }
public override void Initialize() { _container.RegisterType <IMarketingRepository>(new InjectionFactory(c => new MarketingRepositoryImpl("VirtoCommerce", new EntityPrimaryKeyGeneratorInterceptor(), new AuditableInterceptor()))); var promotionExtensionManager = new DefaultMarketingExtensionManagerImpl(); _container.RegisterInstance <IMarketingExtensionManager>(promotionExtensionManager); _container.RegisterType <IPromotionService, PromotionServiceImpl>(); _container.RegisterType <IMarketingDynamicContentEvaluator, DefaultDynamicContentEvaluatorImpl>(); _container.RegisterType <IDynamicContentService, DynamicContentServiceImpl>(); _container.RegisterType <IMarketingSearchService, MarketingSearchServiceImpl>(); _container.RegisterType <IMarketingPromoEvaluator, DefaultPromotionEvaluatorImpl>(); }
public void Initialize(IServiceCollection serviceCollection) { var configuration = serviceCollection.BuildServiceProvider().GetRequiredService <IConfiguration>(); var connectionString = configuration.GetConnectionString("VirtoCommerce.Marketing") ?? configuration.GetConnectionString("VirtoCommerce"); serviceCollection.AddTransient <IMarketingRepository, MarketingRepositoryImpl>(); serviceCollection.AddDbContext <MarketingDbContext>(options => options.UseSqlServer(connectionString)); serviceCollection.AddSingleton <Func <IMarketingRepository> >(provider => () => provider.CreateScope().ServiceProvider.GetRequiredService <IMarketingRepository>()); var promotionExtensionManager = new DefaultMarketingExtensionManagerImpl(); serviceCollection.AddSingleton <IMarketingExtensionManager>(promotionExtensionManager); serviceCollection.AddSingleton <IPromotionService, PromotionServiceImpl>(); serviceCollection.AddSingleton <ICouponService, CouponService>(); serviceCollection.AddSingleton <IPromotionUsageService, PromotionUsageService>(); serviceCollection.AddSingleton <IMarketingDynamicContentEvaluator, DefaultDynamicContentEvaluatorImpl>(); serviceCollection.AddSingleton <IDynamicContentService, DynamicContentServiceImpl>(); serviceCollection.AddSingleton <IPromotionSearchService, MarketingSearchServiceImpl>(); serviceCollection.AddSingleton <ICouponService, CouponService>(); serviceCollection.AddSingleton <IDynamicContentSearchService, MarketingSearchServiceImpl>(); serviceCollection.AddSingleton <CsvCouponImporter>(); serviceCollection.AddSingleton <IMarketingPromoEvaluator>(provider => { var settingsManager = provider.GetService <ISettingsManager>(); var promotionService = provider.GetService <IPromotionSearchService>(); var promotionCombinePolicy = settingsManager.GetValue(ModuleConstants.Settings.General.CombinePolicy.Name, "BestReward"); if (promotionCombinePolicy.EqualsInvariant("CombineStackable")) { return(new CombineStackablePromotionPolicy(promotionService)); } else { return(new BestRewardPromotionPolicy(promotionService)); } }); AbstractTypeFactory <DynamicPromotion> .RegisterType <DynamicPromotion>().WithFactory(() => { var couponService = serviceCollection.BuildServiceProvider().GetService <ICouponService>(); var promotionUsageService = serviceCollection.BuildServiceProvider().GetService <IPromotionUsageService>(); return(new DynamicPromotion(couponService, promotionUsageService)); }); serviceCollection.AddSingleton <DynamicContentItemEventHandlers>(); serviceCollection.AddSingleton <MarketingExportImport>(); }
public override void Initialize() { _container.RegisterType <IMarketingRepository>(new InjectionFactory(c => new MarketingRepositoryImpl(_connectionString, new EntityPrimaryKeyGeneratorInterceptor(), _container.Resolve <AuditableInterceptor>()))); var promotionExtensionManager = new DefaultMarketingExtensionManagerImpl(); _container.RegisterInstance <IMarketingExtensionManager>(promotionExtensionManager); _container.RegisterType <IPromotionService, PromotionServiceImpl>(); _container.RegisterType <ICouponService, CouponService>(); _container.RegisterType <IPromotionUsageService, PromotionUsageService>(); _container.RegisterType <IMarketingDynamicContentEvaluator, DefaultDynamicContentEvaluatorImpl>(); _container.RegisterType <IDynamicContentService, DynamicContentServiceImpl>(); _container.RegisterType <IPromotionSearchService, MarketingSearchServiceImpl>(); _container.RegisterType <ICouponService, CouponService>(); _container.RegisterType <IDynamicContentSearchService, MarketingSearchServiceImpl>(); var settingsManager = _container.Resolve <ISettingsManager>(); var promotionCombinePolicy = settingsManager.GetValue("Marketing.Promotion.CombinePolicy", "BestReward"); if (promotionCombinePolicy.EqualsInvariant("CombineStackable")) { _container.RegisterType <IMarketingPromoEvaluator, CombineStackablePromotionPolicy>(); } else { _container.RegisterType <IMarketingPromoEvaluator, BestRewardPromotionPolicy>(); } var eventHandlerRegistrar = _container.Resolve <IHandlerRegistrar>(); //Create order observer. record order coupon usage eventHandlerRegistrar.RegisterHandler <OrderChangedEvent>(async(message, token) => await _container.Resolve <CouponUsageRecordHandler>().Handle(message)); AbstractTypeFactory <DynamicPromotion> .RegisterType <DynamicPromotion>().WithFactory(() => _container.Resolve <DynamicPromotion>()); AbstractTypeFactory <MarketingExportImport> .RegisterType <MarketingExportImport>().WithFactory(() => _container.Resolve <MarketingExportImport>()); }