protected override void Load(ContainerBuilder builder)
 {
     LoggingRegistrar.Register(builder);
     AuthenticationRegistrar.Register(builder);
     AuthenticationHelpersRegistrar.Register(builder);
 }
Exemplo n.º 2
0
        public static void Start()
        {
            var builder = new ContainerBuilder();

            // Auto-Wire
            builder.AutowireDependencies(assemblyNames: new[] { LibraryDll, WebsiteDll });

            builder.RegisterGlassServices();
            builder.RegisterCacheServices();
            builder.RegisterProcessors(new[] { WebsiteDll, LibraryDll });
            builder.RegisterGlassMvcServices(WebsiteDll, LibraryDll);
            builder.RegisterGlassFactory(LibraryDll, VelirSearchDll, ModelsDll);
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).WithAttributeFilter();
            builder.RegisterControllers(Assembly.GetExecutingAssembly()).WithAttributeFilter();
            builder.RegisterType <CustomSitecoreHelper>().AsSelf();
            builder.RegisterType <ArticleUtil>().AsSelf();
            builder.RegisterType <SitecoreSaverUtil>().AsSelf();
            builder.RegisterType <EmailUtil>().AsSelf();

            //Velir Search Library
            builder.RegisterModule <SearchModule>();
            builder.RegisterModule <SolrSearchModule>();
            SearchRegistrar.RegisterDependencies(builder);

            SessionRegistrar.RegisterDependencies(builder);
            AuthenticationRegistrar.RegisterDependencies(builder);
            SalesforceRegistrar.RegisterDependencies(builder);
            UserRegistrar.RegisterDependencies(builder);
            RegistrationRegistrar.RegisterDependencies(builder);
            CompanyRegistrar.RegisterDependencies(builder);
            NlmRegistrar.RegisterDependencies(builder);
            ScheduledPublishingRegistrar.RegisterDependencies(builder);
            SiteDebuggingRegistrar.RegisterDependencies(builder);
            LoggingRegistrar.RegisterDependencies(builder);
            EntitlementsRegistrar.RegisterDependencies(builder);
            PurchaseRegistrar.RegisterDependencies(builder);
            DCDRegistrar.RegisterDependencies(builder);

            // Custom Modules
            builder.RegisterModule(new LogInjectionModule <ILog>(LogManager.GetLogger));
            builder.RegisterModule(new AutomapperModule(LibraryDll));

#if DEBUG
            builder.RegisterModule(new MiniProfilerModule(WebsiteDll, LibraryDll, VelirSearchDll, GlassMapperDll, GlassMapperScDll, GlassMapperMvcDll));
#endif

            // Custom Registrations
            CustomMvcRegistrar.RegisterDependencies(builder, WebsiteDll);
            GlassMapperRegistrar.RegisterDependencies(builder);
            builder.RegisterType <Library.Caching.CrossSiteCacheProvider>().As <Library.Caching.ICrossSiteCacheProvider>().SingleInstance();

            // This is necessary to 'seal' the container, and make it resolvable from the AutofacStartup.ServiceLocator singleton
            IContainer container = builder.Build();
            container.RegisterContainer();

            // Create the dependency resolver.
            var resolver = new AutofacWebApiDependencyResolver(container);

            // Configure Web API with the dependency resolver.
            GlobalConfiguration.Configuration.DependencyResolver = resolver;

            // Configure MVC with dependency resolver
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }