示例#1
0
 private void RegisterMongoDB(ContainerBuilder builder, IDependencyRegistrarContext context)
 {
     builder.RegisterType <LocalConfigurationProvider>().As <IConfigurationProvider>();
     builder.RegisterType <MongoDbConfiguration>().As <IMongoDbConfiguration>();
     builder.RegisterType <MongoDatabaseProvider>().As <IMongoDatabaseProvider>();
     builder.RegisterGeneric(typeof(MongoDbRepositoryBase <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope();
 }
示例#2
0
        public void Register(ContainerBuilder builder, IDependencyRegistrarContext context)
        {
            RegisterMongoDB(builder, context);
            RegisterAutomapper(builder, context);

            builder.RegisterType <MemoryCacheManager>().As <ICacheManager>();
        }
        public void Register(ContainerBuilder containerBuilder, IDependencyRegistrarContext context)
        {
            // articles
            containerBuilder.RegisterType <ArticleQueryHandler>().As <IQueryHandler <GetArticleQuery, ArticleDto> >();
            containerBuilder.RegisterType <ArticleQueryHandler>().As <IQueryHandler <ListArticlesQuery, PagedList <ArticleOverviewDto> > >();

            // categories
            containerBuilder.RegisterType <CategoriesQueryHandler>().As <IQueryHandler <ListCategoriesQuery, PagedList <CategoryOverviewDto> > >();
            containerBuilder.RegisterType <CategoriesQueryHandler>().As <IQueryHandler <GetCategoryQuery, CategoryDto> >();
            containerBuilder.RegisterType <CategoriesQueryHandler>().As <IQueryHandler <GetCategoriesTreeQuery, IEnumerable <CategoriesTreeNode> > >();

            containerBuilder.RegisterType <AritclesMapperRegistrar>();
            containerBuilder.RegisterType <CategoriesMapperRegistrar>();
        }
示例#4
0
 private static void InitConfiguartion(ContainerBuilder builder, IDependencyRegistrarContext context)
 {
     // Config connection string
     builder.Register <MongoDbConfiguration>(c =>
     {
         var configurationProvice = c.Resolve <IConfigurationProvider>();
         var mongoConfiguration   = configurationProvice.GetConfiguration <MongoDBConfig>();
         return(new MongoDbConfiguration
         {
             ConnectionString = mongoConfiguration.ConnectionString,
             DatabaseName = mongoConfiguration.DatabaseName
         });
     }).As <IMongoDbConfiguration>();
 }
        public void Register(ContainerBuilder builder, IDependencyRegistrarContext context)
        {
            #region Articles

            builder.RegisterType <ArticleCommandHandler>().As <ICommandHandler <CreateArticleCommand> >();
            builder.RegisterType <ArticleCommandHandler>().As <ICommandHandler <UpdateArticleCommand> >();

            builder.RegisterType <AritclesMapperRegistrar>();
            #endregion

            #region Category
            builder.RegisterType <CategoriesCommandHandler>().As <ICommandHandler <CreateCategoryCommand> >()
            .As <ICommandHandler <UpdateCategoryCommand> >();

            builder.RegisterType <CategoriesMapperRegistrar>();
            #endregion
            builder.RegisterType <SharedMapperRegistrar>();
        }
示例#6
0
        public void Initialize(Action <ContainerBuilder, IDependencyRegistrarContext> buildAction = null)
        {
            if (!_isInitialized)
            {
                ContainerBuilder builder = new ContainerBuilder();
                _registrarContext = new DependencyRegistrarContext(this);
                builder.Register(component => this).As <IIocManager>().SingleInstance();
                builder.RegisterInstance(_registrarContext).As <IDependencyRegistrarContext>();
                builder.RegisterInstance(_typeFinder).As <ITypeFinder>();

                IocContainer = builder.Build();

                // Get all registrars
                RegisterDependencies();

                builder = new ContainerBuilder();
                buildAction?.Invoke(builder, _registrarContext);

                builder.Update(IocContainer);
                _isInitialized = true;
            }
        }
示例#7
0
        private void RegisterAutomapper(ContainerBuilder builder, IDependencyRegistrarContext context)
        {
            var container            = context.IocManager.IocContainer;
            var mapperRegistrarTypes = _typeFinder.FindClassesOfType <IAutoMapperRegistrar>(true);

            Mapper.Initialize(cfg =>
            {
                using (var scope = container.BeginLifetimeScope())
                {
                    foreach (var type in mapperRegistrarTypes)
                    {
                        object registrar = null;
                        if (container.TryResolve(type, out registrar))
                        {
                            ((IAutoMapperRegistrar)registrar).Register(cfg);
                        }
                    }
                }
            });

            // After create map
            builder.RegisterInstance(Mapper.Instance).As <IMapper>().SingleInstance();
        }
示例#8
0
 public void Register(ContainerBuilder builder, IDependencyRegistrarContext context)
 {
     builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
     builder.RegisterType <WebApiAutoMapperRegistrar>();
 }
示例#9
0
 private void RegisterDependencies(ContainerBuilder builder, IDependencyRegistrarContext context)
 {
     builder.RegisterType <LocalConfigurationProvider>().As <IConfigurationProvider>();
     builder.RegisterType <MemoryCacheManager>().As <ICacheManager>();
 }
示例#10
0
 public void Register(ContainerBuilder containerBuilder, IDependencyRegistrarContext context)
 {
     containerBuilder.RegisterType <InMemoryQueryBus>().As <IQueryBus>();
     containerBuilder.RegisterType <InMemoryCommandBus>().As <ICommandBus>();
     containerBuilder.RegisterType <InMemoryEventBus>().As <IEventBus>();
 }