示例#1
0
        public void Register(ContainerBuilder builder, ITypeFinder typeFinder, Core.Configuration.NopConfig config)
        {
            builder.RegisterType <GalleryService>().As <IGalleryService>().InstancePerHttpRequest();
            Database.SetInitializer <GalleryObjectContext>(null);
            //data layer
            var dataSettingsManager  = new DataSettingsManager();
            var dataProviderSettings = dataSettingsManager.LoadSettings();

            if (dataProviderSettings != null && dataProviderSettings.IsValid())
            {
                //register named context
                builder.Register <IDbContext>(c => new GalleryObjectContext(dataProviderSettings.DataConnectionString))
                .Named <IDbContext>("nop_object_context_gallery")
                .InstancePerHttpRequest();

                builder.Register <GalleryObjectContext>(c => new GalleryObjectContext(dataProviderSettings.DataConnectionString))
                .InstancePerHttpRequest();
            }
            else
            {
                //register named context
                builder.Register <IDbContext>(c => new GalleryObjectContext(c.Resolve <DataSettings>().DataConnectionString))
                .Named <IDbContext>("nop_object_context_gallery")
                .InstancePerHttpRequest();

                builder.Register <GalleryObjectContext>(c => new GalleryObjectContext(c.Resolve <DataSettings>().DataConnectionString))
                .InstancePerHttpRequest();
            }

            //override required repository with our custom context
            builder.RegisterType <EfRepository <Galleries> >()
            .As <IRepository <Galleries> >()
            .WithParameter(ResolvedParameter.ForNamed <IDbContext>("nop_object_context_gallery"))
            .InstancePerHttpRequest();

            builder.RegisterType <EfRepository <GalleryImages> >()
            .As <IRepository <GalleryImages> >()
            .WithParameter(ResolvedParameter.ForNamed <IDbContext>("nop_object_context_gallery"))
            .InstancePerHttpRequest();
        }
 public void Register(ContainerBuilder builder, Core.Infrastructure.ITypeFinder typeFinder, Core.Configuration.NopConfig config)
 {
     builder.RegisterType <TimelineWidgetLoaderService>().As <ITimelineWidgetLoaderService>().InstancePerRequest();
 }