public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { foreach (var type in typeFinder.FindClassesOfType <ITopbarCommand>()) { containerManager.AddComponent(typeof(ITopbarCommand), type, type.FullName, ComponentLifeStyle.Transient); } }
public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { // Current instance providers containerManager.AddComponent(typeof(ICurrentInstanceProvider), typeof(ThreadScopeCurrentInstanceProvider), "ThreadScopeCurrentInstanceProvider", ComponentLifeStyle.Singleton); containerManager.AddComponent(typeof(ICurrentInstanceProvider), typeof(SiteAwareHttpCurrentInstanceProvider), "SiteAwareHttpCurrentInstanceProvider", ComponentLifeStyle.Transient); // Data folder factory containerManager.AddComponentInstance <DataFolderFactory>(DataFolderFactory.Current); // Instance intializers foreach (var type in typeFinder.FindClassesOfType <IInstanceInitializer>()) { containerManager.AddComponent(typeof(IInstanceInitializer), type, type.FullName, ComponentLifeStyle.Transient); } // Repository and ICommerceDatabase var container = ((Kooboo.CMS.Common.Runtime.Dependency.Ninject.ContainerManager)containerManager).Container; container.Bind <CommerceInstance>() .ToMethod(ctx => CommerceInstance.Current); container.Bind <ICommerceDatabase>() .ToMethod(ctx => { var instance = CommerceInstance.Current; if (instance == null) { throw new InvalidOperationException("Cannot resolve ICommerceDatabase, because there's no commerce instance in the context."); } return(instance.Database); }); container.Bind(typeof(IRepository <>)).To(typeof(CommerceRepository <>)); }
public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { foreach (var type in typeFinder.FindClassesOfType <ICommerceDbProvider>()) { CommerceDbProviders.Providers.Add((ICommerceDbProvider)containerManager.Resolve(type)); } }
public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { foreach (var type in typeFinder.FindClassesOfType <ICommerceDataSource>()) { if (type.IsClass && !type.IsAbstract) { containerManager.AddComponent(typeof(ICommerceDataSource), type, type.FullName, ComponentLifeStyle.Transient); } } }
static void RegisterActivities(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { foreach (var activityType in typeFinder.FindClassesOfType <IActivity>()) { if (activityType.IsClass && !activityType.IsAbstract) { containerManager.AddComponent(typeof(IActivity), activityType, activityType.FullName, ComponentLifeStyle.Transient); } } }
public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { foreach (var type in typeFinder.FindClassesOfType <IRuleParameterProvider>()) { if (type != typeof(DefaultRuleParameterProvider)) { var provider = Activator.CreateInstance(type) as IRuleParameterProvider; RuleParameterProviders.Providers.Add(provider); } } }
public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { containerManager.AddComponent(typeof(IMenuInjection), typeof(GlobalMenuInjection), "GlobalMenuInjection", ComponentLifeStyle.Singleton); containerManager.AddComponent(typeof(IMenuInjection), typeof(InstanceMenuInjection), "InstanceMenuInjection", ComponentLifeStyle.Singleton); foreach (var type in typeFinder.FindClassesOfType <IMenuInjection>()) { if (typeof(CommerceMenuInjection).IsAssignableFrom(type) && type != typeof(GlobalMenuInjection) && type != typeof(InstanceMenuInjection)) { containerManager.AddComponent(typeof(IMenuInjection), type, type.FullName, ComponentLifeStyle.Transient); } } }
public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { RegisterActivities(containerManager, typeFinder); var manager = EventSlotManager.Instance; manager.Register <BrandCreated>("Brands", "Created"); manager.Register <BrandUpdated>("Brands", "Updated"); manager.Register <BrandDeleted>("Brands", "Deleted"); manager.Register <CategoryCreated>("Categories", "Created"); manager.Register <CategoryUpdated>("Categories", "Updated"); manager.Register <CategoryDeleted>("Categories", "Deleted"); manager.Register <ProductTypeEnabled>("Product Types", "Enabled"); manager.Register <ProductTypeDisabled>("Product Types", "Disabled"); manager.Register <ProductCreated>("Products", "Created"); manager.Register <ProductUpdated>("Products", "Updated"); manager.Register <ProductDeleted>("Products", "Deleted"); manager.Register <ProductPublished>("Products", "Published"); manager.Register <ProductUnpublished>("Products", "Unpublished"); manager.Register <GetPrice>("Products"); manager.Register <CustomerCreated>("Customers", "Created"); manager.Register <CustomerUpdated>("Customers", "Updated"); manager.Register <CustomerDeleted>("Customers", "Deleted"); manager.Register <PromotionEnabled>("Promotions", "Enabled"); manager.Register <PromotionDisabled>("Promotions", "Disabled"); manager.Register <CartCreated>("Carts", "Created"); manager.Register <CartItemAdded>("Carts", "Item Added"); manager.Register <CartItemQuantityChanged>("Carts", "Item Quantity Changed"); manager.Register <CartItemRemoved>("Carts", "Item Removed"); manager.Register <CartPriceCalculated>("Carts", "Price Calculated"); manager.Register <CartExpired>("Carts", "Expires"); manager.Register <OrderCreated>("Orders", "Created"); manager.Register <OrderStatusChanged>("Orders", "Status Changed"); manager.Register <PaymentStatusChanged>("Orders", "Payment Status Changed"); manager.Register <PaymentMethodEnabled>("Payment Methods", "Enabled"); manager.Register <PaymentMethodDisabled>("Payment Methods", "Disabled"); manager.Register <ShippingMethodEnabled>("Shipping Methods", "Enabled"); manager.Register <ShippingMethodDisabled>("Shipping Methods", "Disabled"); }
public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder) { var assemblies = typeFinder.GetAssemblies() .Where(x => !IsIgnoredAssembly(x)) .ToList(); foreach (var assembly in assemblies) { foreach (var handlerType in assembly.GetTypes()) { if (!handlerType.IsClass || handlerType.IsAbstract || handlerType.IsGenericType) { continue; } foreach (var eventType in GetHandledEventTypes(handlerType)) { Event.Listen(eventType, handlerType); } } } }