Ejemplo n.º 1
0
        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 <>));
        }
Ejemplo n.º 2
0
 public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
 {
     containerManager.AddComponentInstance<IRepositoryProvider>(new RepositoryProvider(containerManager.Resolve<IRepositoryProvider>()));
     containerManager.AddComponent<IMediaFolderProvider, MediaFolderProvider>();
     containerManager.AddComponent<IMediaContentProvider, MediaContentProvider>();
     containerManager.AddComponent<ITextContentFileProvider, TextContentFileProvider>();
 }
Ejemplo n.º 3
0
 public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
 {
     containerManager.AddComponent <IProviderFactory, ProviderFactory>();
     containerManager.AddComponent <ISchemaProvider, SchemaProvider>();
     containerManager.AddComponent <IContentProvider <TextContent>, TextContentProvider>();
     containerManager.AddComponent <ITextContentProvider, TextContentProvider>();
 }
Ejemplo n.º 4
0
 public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
 {
     containerManager.AddComponent<IElementRepositoryFactory, LabelProvider.RepositoryFactory>();
     containerManager.AddComponent<IPageProvider, PageProvider.PageProvider>();
     containerManager.AddComponent<IHtmlBlockProvider, HtmlBlockProvider.HtmlBlockProvider>();
     containerManager.AddComponent<IUserProvider, UserProvider.UserProvider>();
 }
Ejemplo n.º 5
0
 public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
 {
     containerManager.AddComponent <IElementRepositoryFactory, LabelProvider.RepositoryFactory>();
     containerManager.AddComponent <IPageProvider, PageProvider.PageProvider>();
     containerManager.AddComponent <IHtmlBlockProvider, HtmlBlockProvider.HtmlBlockProvider>();
     containerManager.AddComponent <IUserProvider, UserProvider.UserProvider>();
 }
Ejemplo n.º 6
0
        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<>));
        }
Ejemplo n.º 7
0
 public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
 {
     containerManager.AddComponent<IProviderFactory, ProviderFactory>();
     containerManager.AddComponent<ISchemaProvider, SchemaProvider>();
     containerManager.AddComponent<IContentProvider<TextContent>, TextContentProvider>();
     containerManager.AddComponent<ITextContentProvider, TextContentProvider>();
 }
Ejemplo n.º 8
0
 public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
 {
     containerManager.AddComponentInstance <IRepositoryProvider>(new RepositoryProvider(containerManager.Resolve <IRepositoryProvider>()));
     containerManager.AddComponent <IMediaFolderProvider, MediaFolderProvider>();
     containerManager.AddComponent <IMediaContentProvider, MediaContentProvider>();
     containerManager.AddComponent <ITextContentFileProvider, TextContentFileProvider>();
 }
Ejemplo n.º 9
0
 public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
 {
     Kooboo.CMS.Sites.Globalization.DefaultRepositoryFactory.Instance = new LabelProvider.RepositoryFactory();
     containerManager.AddComponent<IPageProvider, PageProvider.PageProvider>();
     containerManager.AddComponent<IHtmlBlockProvider, HtmlBlockProvider.HtmlBlockProvider>();
     containerManager.AddComponent<IUserProvider, UserProvider.UserProvider>();
 }
Ejemplo n.º 10
0
        public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
        {
            containerManager.AddComponent(typeof(IRoleProvider), typeof(RoleProvider));
            containerManager.AddComponent(typeof(IProvider<Role>), typeof(RoleProvider));

            containerManager.AddComponent(typeof(IUserProvider), typeof(UserProvider));
            containerManager.AddComponent(typeof(IProvider<User>), typeof(UserProvider));
        }
Ejemplo n.º 11
0
        public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
        {
            containerManager.AddComponent(typeof(IRoleProvider), typeof(RoleProvider));
            containerManager.AddComponent(typeof(IProvider <Role>), typeof(RoleProvider));

            containerManager.AddComponent(typeof(IUserProvider), typeof(UserProvider));
            containerManager.AddComponent(typeof(IProvider <User>), typeof(UserProvider));
        }
Ejemplo n.º 12
0
        public void Register(IContainerManager containerManager, Common.ObjectContainer.ITypeFinder typeFinder)
        {
            var buttonGroupTypes = typeFinder.FindClassesOfType<IButtonGroup>();
            containerManager.AddComponent(typeof(IButtonGroup), buttonGroupTypes);

            var buttonPluginTypes = typeFinder.FindClassesOfType<IButtonPlugin>();
            containerManager.AddComponent(typeof(IButtonPlugin), buttonPluginTypes);
        }
Ejemplo n.º 13
0
        public void Setup()
        {
            var build = new ContainerBuilder();
            manager = new AutofacContainerManager(build.Build());

            manager.AddComponent<ISubscriber<EntityEvent<User>>, UserModelSubscriber>("user");
            manager.AddComponent<IObserverService, ObserverService>("service");
            EngineContext.Initialize(manager, new ContainerConfig(), false);
        }
        public void Register(IContainerManager containerManager, Common.ObjectContainer.ITypeFinder typeFinder)
        {
            var buttonGroupTypes = typeFinder.FindClassesOfType <IButtonGroup>();

            containerManager.AddComponent(typeof(IButtonGroup), buttonGroupTypes);

            var buttonPluginTypes = typeFinder.FindClassesOfType <IButtonPlugin>();

            containerManager.AddComponent(typeof(IButtonPlugin), buttonPluginTypes);
        }
Ejemplo n.º 15
0
        //public static void ResetProviders()
        //{
        //    var dbContext = SiteDbContext.CreateDbContext();
        //    dbContext.Database.CreateIfNotExists();
        //    Kooboo.CMS.Sites.Globalization.DefaultRepositoryFactory.Instance = new LabelProvider.RepositoryFactory();
        //    var providerFactory = Kooboo.CMS.Sites.Persistence.Providers.ProviderFactory;
        //    providerFactory.RegisterProvider<IPageProvider>(new PageProvider.PageProvider());
        //    providerFactory.RegisterProvider<IHtmlBlockProvider>(new HtmlBlockProvider.HtmlBlockProvider());
        //    providerFactory.RegisterProvider<IUserProvider>(new UserProvider.UserProvider());
        //    // VersionManager.RegisterVersionLogger<Page>(new PageProvider.PageProvider.PageVersionLogger());
        //    //VersionManager.RegisterVersionLogger<HtmlBlock>(new HtmlBlockProvider.HtmlBlockProvider.HtmlBlockVersionLogger());
        //}
        public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
        {
            Kooboo.CMS.Sites.Globalization.DefaultRepositoryFactory.Instance = new LabelProvider.RepositoryFactory();
            containerManager.AddComponent<IPageProvider, PageProvider.PageProvider>();
            containerManager.AddComponent<IHtmlBlockProvider, HtmlBlockProvider.HtmlBlockProvider>();
            containerManager.AddComponent<IUserProvider, UserProvider.UserProvider>();

            var dbContext = SiteDbContext.CreateDbContext();
            dbContext.Database.CreateIfNotExists();
        }
Ejemplo n.º 16
0
        //public static void ResetProviders()
        //{
        //    var dbContext = SiteDbContext.CreateDbContext();
        //    dbContext.Database.CreateIfNotExists();

        //    Kooboo.CMS.Sites.Globalization.DefaultRepositoryFactory.Instance = new LabelProvider.RepositoryFactory();

        //    var providerFactory = Kooboo.CMS.Sites.Persistence.Providers.ProviderFactory;
        //    providerFactory.RegisterProvider<IPageProvider>(new PageProvider.PageProvider());
        //    providerFactory.RegisterProvider<IHtmlBlockProvider>(new HtmlBlockProvider.HtmlBlockProvider());
        //    providerFactory.RegisterProvider<IUserProvider>(new UserProvider.UserProvider());

        //    // VersionManager.RegisterVersionLogger<Page>(new PageProvider.PageProvider.PageVersionLogger());
        //    //VersionManager.RegisterVersionLogger<HtmlBlock>(new HtmlBlockProvider.HtmlBlockProvider.HtmlBlockVersionLogger());
        //}

        public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
        {
            //Kooboo.CMS.Sites.Globalization.DefaultRepositoryFactory.Instance = new LabelProvider.RepositoryFactory();
            containerManager.AddComponent <IElementRepositoryFactory, LabelProvider.RepositoryFactory>();
            containerManager.AddComponent <IPageProvider, PageProvider.PageProvider>();
            containerManager.AddComponent <IHtmlBlockProvider, HtmlBlockProvider.HtmlBlockProvider>();
            containerManager.AddComponent <IUserProvider, UserProvider.UserProvider>();

            var dbContext = SiteDbContext.CreateDbContext();

            dbContext.Database.CreateIfNotExists();
        }
Ejemplo n.º 17
0
        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);
                }
            }
        }
Ejemplo n.º 18
0
        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)
 {
     foreach (var type in typeFinder.FindClassesOfType <ITopbarCommand>())
     {
         containerManager.AddComponent(typeof(ITopbarCommand), type, type.FullName, ComponentLifeStyle.Transient);
     }
 }
Ejemplo n.º 20
0
 public void Register(IContainerManager containerManager, CMS.Common.Runtime.ITypeFinder typeFinder)
 {
     foreach (var type in typeFinder.FindClassesOfType<ITabPlugin>())
     {
         containerManager.AddComponent(typeof(ITabPlugin), type, type.FullName, ComponentLifeStyle.Transient);
     }
 }
 public static void AddComponent(this IContainerManager containerManager, Type service, IEnumerable <Type> implementations)
 {
     foreach (var item in implementations)
     {
         containerManager.AddComponent(service, item, item.FullName);
     }
 }
Ejemplo n.º 22
0
 public virtual void RegisterServices(IEnumerable <AttributeInfo <DependencyAttribute> > services)
 {
     foreach (var info in services)
     {
         Type serviceType = info.Attribute.ServiceType ?? info.DecoratedType;
         _containerManager.AddComponent(serviceType, info.DecoratedType, info.Attribute.Key, info.Attribute.LifeStyle);
     }
 }
Ejemplo n.º 23
0
 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);
         }
     }
 }
Ejemplo n.º 24
0
 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);
         }
     }
 }
Ejemplo n.º 25
0
 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);
         }
     }
 }
Ejemplo n.º 26
0
        /// <summary>
        /// register necessary type
        /// </summary>
        /// <param name="engine"></param>
        /// <param name="containerManager"></param>
        /// <param name="broker"></param>
        /// <param name="configuration"></param>
        public virtual void Init(IEngine engine, IContainerManager containerManager, EventBroker broker, Config configuration)
        {
            // register singleton instance
            containerManager.AddComponentInstance<Config>(configuration, typeof(Config).Name);
            containerManager.AddComponentInstance<IEngine>(engine, engine.GetType().Name);
            containerManager.AddComponentInstance<EventBroker>(broker, broker.GetType().Name);
            containerManager.AddComponentInstance<ContainerConfigBase>(this, this.GetType().Name);

            // register type
            containerManager.AddComponent<ISearcher, WebsiteSearcher>(typeof(WebsiteSearcher).Name);

            // register type: should remove in future (to use configuration provider to config and register)
            // TO-DO: Check if I register this time multi times (should not)
            //containerManager.AddComponent<DatabaseSettings>(typeof(DatabaseSettings).Name); // to remove because data dll has been decoupled
            // TO-DO: Check if register it before and figure out how to set it
            containerManager.AddComponentInstance<StoreStateSettings>(
                new StoreStateSettings
                {
                    DefaultStoredThemeForDesktop = "Default",
                    DefaultStoredThemeForMobile = "Default",
                    EnableMiniProfile = true
                },
                typeof(StoreStateSettings).Name);
            containerManager.AddComponentInstance<UserSettings>(new UserSettings
                {
                    StoreLastVisitedPage = true,
                    UsingUserEmail = true
                },
                typeof(UserSettings).Name);
            // TO-DO: Check if register it before and figure out how to set it
            containerManager.AddComponentInstance<PageSettings>(new PageSettings { DefaultTitle = "HomePage" }, typeof(PageSettings).Name, Infrastructure.IoC.LifeStyle.Singleton);

            // register IRegistrar
            containerManager.UpdateContainer(build =>
            {
                var searcher = containerManager.Resolve<ISearcher>(typeof(WebsiteSearcher).Name);
                searcher.RoutingToExecute<IRegistrar>(i => i.Register(build, searcher));
            });

            // TO-DO
        }
Ejemplo n.º 27
0
        public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
        {
            containerManager.AddComponent <Kooboo.CMS.Content.Services.WorkflowManager, ContentWorkflowManager>();

            containerManager.AddComponent <Kooboo.CMS.Content.Services.SendingSettingManager, SendingSettingManager>();
        }
Ejemplo n.º 28
0
        public static void RegisterConfig(this IContainerManager containerManager, XElement root)
        {
            var compEles = root.Element("components").Elements("component");

            foreach (var ele in compEles)
            {
                var serviceType          = GetTypeByFullName(ele.Attribute("type").Value);
                var interfaceType        = GetTypeByFullName(ele.Attribute("service").Value);
                ComponentLifeStyle scope = ComponentLifeStyle.Transient;
                if (ele.Attribute("scope") != null)
                {
                    switch (ele.Attribute("scope").Value.ToLower())
                    {
                    case "singleton":
                        scope = ComponentLifeStyle.Singleton;
                        break;

                    case "request":
                        scope = ComponentLifeStyle.InRequestScope;
                        break;

                    case "thread":
                        scope = ComponentLifeStyle.InThreadScope;
                        break;

                    case "transiant":
                    default:
                        scope = ComponentLifeStyle.Transient;
                        break;
                    }
                }
                string name = ele.Attribute("name") == null ? null : ele.Attribute("name").Value;

                if (ele.HasElements)
                {
                    var paraEles     = ele.Element("parameters").Elements("parameter");
                    var constructors = serviceType.GetConstructors();
                    foreach (var constructor in constructors)
                    {
                        var           parameters = constructor.GetParameters();
                        List <object> pvals      = new List <object>();
                        try
                        {
                            foreach (var para in parameters)
                            {
                                var    pele = paraEles.FirstOrDefault(e => e.Attribute("name").Value.ToLower() == para.Name.ToLower());
                                object val  = null;
                                if (pele != null)
                                {
                                    val = ConvertTo(para.ParameterType, pele.Attribute("value").Value);
                                }
                                else
                                {
                                    val = containerManager.TryResolve(para.ParameterType);
                                }
                                pvals.Add(val);
                            }

                            object instance = constructor.Invoke(pvals.ToArray());
                            containerManager.AddComponentInstance(interfaceType, instance, name);
                        }
                        catch
                        {
                            continue;
                        }
                    }
                }
                else
                {
                    containerManager.AddComponent(interfaceType, serviceType, name, scope);
                }
            }

            var moduleEles = root.Element("modules").Elements("module");

            foreach (var ele in moduleEles)
            {
                var        moduleType = Type.GetType(ele.Attribute("type").Value);
                IIocModule module     = Activator.CreateInstance(moduleType) as IIocModule;
                containerManager.RegisterModule(module);
            }
        }
Ejemplo n.º 29
0
 public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
 {
     containerManager.AddComponent <IMediaFolderProvider, MediaFolderProvider>();
     containerManager.AddComponent <IMediaContentProvider, MediaContentProvider>();
     containerManager.AddComponent <ITextContentFileProvider, TextContentFileProvider>();
 }
Ejemplo n.º 30
0
 public void Register(IContainerManager containerManager, ITypeFinder typeFinder)
 {
     containerManager.AddComponent<IMediaFolderProvider, MediaFolderProvider>();
     containerManager.AddComponent<IMediaContentProvider, MediaContentProvider>();
     containerManager.AddComponent<ITextContentFileProvider, TextContentFileProvider>();
 }
 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);
         }
     }
 }