Ejemplo n.º 1
0
        /// <summary>
        /// Initialize to get interface, implementation to register.
        /// </summary>
        /// <param name="moduleRegister">The module register.</param>
        /// <param name="type">The type.</param>
        public void Initialize(IModuleRegister moduleRegister, TypeInfo type)
        {
            if (Equals(type, null))
            {
                return;
            }

            moduleRegister.Register(type.GetInterfaces().FirstOrDefault(), type, IsSingleton(type));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Initialize to get interface, implementation to register.
        /// </summary>
        /// <param name="moduleRegister">The module register.</param>
        /// <param name="type">The type.</param>
        public void Initialize(IModuleRegister moduleRegister, TypeInfo type)
        {
            if (Equals(type, null))
            {
                return;
            }

            // Check assembly name include in register assembly names
            moduleRegister.Register(type.GetInterfaces().FirstOrDefault(), type, this.GetLifetime(type));
        }
Ejemplo n.º 3
0
        public StaticModuleResolver AddStaticModule(string module_id, IModuleRegister moduleRegister)
        {
            IModuleRegister oldRegister;

            if (_modRegisters.TryGetValue(module_id, out oldRegister))
            {
                oldRegister.Unload();
            }
            _modRegisters[module_id] = moduleRegister;
            return(this);
        }
        /// <inheritdoc cref="IModuleManager.UninstallModuleAsync(Assembly)" />
        public async Task UninstallModuleAsync(Assembly assembly)
        {
            IModuleRegister dependancyRegister = null;
            Type            serviceType        = typeof(IModuleRegister);

            IEnumerable <Type> modulesToRegister = assembly.GetTypes()
                                                   .Where(type => serviceType.IsAssignableFrom(type) && !type.GetTypeInfo().IsAbstract);

            foreach (Type implementationType in modulesToRegister)
            {
                dependancyRegister = Activator.CreateInstance(implementationType) as IModuleRegister;

                await dependancyRegister.UninstallAsync();
            }
        }
        /// <inheritdoc cref="IModuleManager.InstallModulesAsync" />
        public async Task InstallModulesAsync()
        {
            IModuleRegister dependancyRegister = null;
            Type            serviceType        = typeof(IModuleRegister);

            IEnumerable <Type> modulesToRegister = KastraAssembliesContext.Instance.GetModuleAssemblies().SelectMany(assembly => assembly.GetTypes())
                                                   .Where(type => serviceType.IsAssignableFrom(type) && !type.GetTypeInfo().IsAbstract);

            foreach (Type implementationType in modulesToRegister)
            {
                dependancyRegister = Activator.CreateInstance(implementationType) as IModuleRegister;

                await dependancyRegister.InstallAsync(_serviceProvider, _viewManager);
            }
        }
Ejemplo n.º 6
0
 public void SetUp(IModuleRegister registrar)
 {
     registrar.RegisterType <IAccounts, AccountsService>();
     registrar.RegisterType <IAuthorizes, AuthorizesService>();
     registrar.RegisterType <IAuthTokens, AuthTokensService>();
     registrar.RegisterType <ICategories, CategoriesService>();
     registrar.RegisterType <ICustomers, CustomersService>();
     registrar.RegisterType <IEmployees, EmployeesService>();
     registrar.RegisterType <IOrder_Details, Order_DetailsService>();
     registrar.RegisterType <IOrders, OrdersService>();
     registrar.RegisterType <IProducts, ProductsService>();
     registrar.RegisterType <IRegion, RegionService>();
     registrar.RegisterType <IShippers, ShippersService>();
     registrar.RegisterType <ISuppliers, SuppliersService>();
     registrar.RegisterType <ITerritories, TerritoriesService>();
     registrar.RegisterType <IJWTService, JWTService>();
 }
Ejemplo n.º 7
0
        // TODO Config: 因為有多個資料庫,所以在註冊時指定名稱,讓 Service 可以透過名稱取得正確的 IDataContextAsync 及 IUnitOfWorkAsync。
        public void SetUp(IModuleRegister register)
        {
            // 建立 重複使用的
            register.RegisterDataContext <DbContext, NorthwindContext>("NorthwindContext");
            register.RegisterUnitOfWork <IUnitOfWork, UnitOfWork>("NorthwindContext");

            register.RegisterRepository <ITrackableRepository <Accounts>, TrackableRepository <Accounts> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Authorizes>, TrackableRepository <Authorizes> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <AuthTokens>, TrackableRepository <AuthTokens> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Categories>, TrackableRepository <Categories> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Customers>, TrackableRepository <Customers> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Employees>, TrackableRepository <Employees> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <EmployeeTerritories>, TrackableRepository <EmployeeTerritories> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <OrderDetails>, TrackableRepository <OrderDetails> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Orders>, TrackableRepository <Orders> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Products>, TrackableRepository <Products> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Region>, TrackableRepository <Region> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Shippers>, TrackableRepository <Shippers> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Suppliers>, TrackableRepository <Suppliers> >("NorthwindContext");
            register.RegisterRepository <ITrackableRepository <Territories>, TrackableRepository <Territories> >("NorthwindContext");
        }
Ejemplo n.º 8
0
        public void SetUp(IModuleRegister register)
        {
            // TODO Config: 因為有多個資料庫,所以在註冊時指定名稱,讓 Service 可以透過名稱取得正確的 IDataContextAsync 及 IUnitOfWorkAsync。
            // 修改這裡3
            register.RegisterDataContext <DbContext, NorthwindDbContext>("Northwind");
            register.RegisterUnitOfWork <IUnitOfWorkAsync, UnitOfWork>("Northwind");
            // register.RegisterDataContext<IDataContextHelper, NorthwindDbContext>("Northwind");

            register.RegisterRepository <IRepositoryAsync <Accounts>, Repository <Accounts> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Authorizes>, Repository <Authorizes> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <AuthTokens>, Repository <AuthTokens> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Categories>, Repository <Categories> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Customers>, Repository <Customers> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Employees>, Repository <Employees> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Order_Details>, Repository <Order_Details> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Orders>, Repository <Orders> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Products>, Repository <Products> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Region>, Repository <Region> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Shippers>, Repository <Shippers> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Suppliers>, Repository <Suppliers> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <Territories>, Repository <Territories> >("Northwind");
            register.RegisterRepository <IRepositoryAsync <NLog_Error>, Repository <NLog_Error> >("Northwind");
        }
Ejemplo n.º 9
0
 public void AddStaticModule(string module_id, IModuleRegister register)
 {
     FindModuleResolver <StaticModuleResolver>().AddStaticModule(module_id, register);
 }