Example #1
0
        /// <summary>
        /// Initialize all required interface
        /// </summary>
        /// <param name="container"></param>
        private static void RegisterAllDependencies(Container container)
        {
            container.Register(() => new EzCMSEntities(), Lifestyle.Scoped);
            container.Register <DbContext>(() => new EzCMSEntities(), Lifestyle.Scoped);

            container.Register(typeof(IRepository <>), typeof(Repository <>), Lifestyle.Scoped);
            container.Register(typeof(IHierarchyRepository <>), typeof(HierarchyRepository <>), Lifestyle.Scoped);

            IoCRegister.RegisterDepencies(container);

            // Logger using site settings
            container.Register(typeof(ILogger), () => new Logger(MethodBase.GetCurrentMethod().DeclaringType), Lifestyle.Scoped);

            #region Register controllers

            //container.RegisterMvcControllers(EzCMSUtilities.GetEzCMSAssemblies().ToArray());

            var registeredControllerTypes = SimpleInjectorMvcExtensions.GetControllerTypesToRegister(
                container, EzCMSUtilities.GetEzCMSAssemblies().ToArray());

            // Remove setup controller out of Register process
            registeredControllerTypes = registeredControllerTypes.Where(type => type.Name != "SetupController").ToArray();

            foreach (var controllerType in registeredControllerTypes)
            {
                RegisterController(container, controllerType);
            }

            #endregion
        }
        public static void Initialize()
        {
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();

            // Chamada dos módulos do Simple Injector
            InitializeContainer(container);

            // Necessário para registrar o ambiente do Owin que é dependência do Identity
            // Feito fora da camada de IoC para não levar o System.Web para fora
            container.Register(() =>
            {
                if (HttpContext.Current != null && HttpContext.Current.Items["owin.Environment"] == null && container.IsVerifying)
                {
                    return(new OwinContext().Authentication);
                }
                return(HttpContext.Current.GetOwinContext().Authentication);
            }, Lifestyle.Scoped);

            //container.RegisterMvcControllers(Assembly.GetExecutingAssembly());
            var registeredControllerTypes =
                SimpleInjectorMvcExtensions.GetControllerTypesToRegister(
                    container, Assembly.GetExecutingAssembly());

            foreach (var controllerType in registeredControllerTypes)
            {
                container.Register(controllerType, controllerType, Lifestyle.Scoped);
            }

            container.Verify();

            DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
        }
Example #3
0
        public void ConfigureDependencyInjection(IAppBuilder app)
        {
            // Create a new Simple Injector container
            var container = new Container();

            // Configure the container (register dependencies)
            InitializeContainer(container);

            // Register all MVC controllers
            // Fail to register the AccountController.  Let's remove DI from Identity for now.
            //container.RegisterMvcControllers(Assembly.GetExecutingAssembly());

            //List all Controller and register them, one by one.
            //var registeredControllerTypes =
            //	SimpleInjectorMvcExtensions.GetControllerTypesToRegister(
            //	container, Assembly.GetExecutingAssembly());

            //foreach (var controllerType in registeredControllerTypes)
            //{
            //	container.Register(controllerType, controllerType, Lifestyle.Transient);
            //}

            //List all controller, except... the exeception
            var registeredControllerTypes =
                SimpleInjectorMvcExtensions.GetControllerTypesToRegister(
                    container, Assembly.GetExecutingAssembly())
                .Where(type => type.Name != "AccountController").
                Where(type => type.Name != "ManageController");

            foreach (var controllerType in registeredControllerTypes)
            {
                container.Register(controllerType, controllerType, Lifestyle.Transient);
            }

            //WEB API.
            container.RegisterWebApiControllers(GlobalConfiguration.Configuration);

            // Optionally verify the container's configuration.
            container.Verify();

            // Register the container as MVC DependencyResolver.
            DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));

            GlobalConfiguration.Configuration.DependencyResolver =
                new SimpleInjectorWebApiDependencyResolver(container);
        }
Example #4
0
        /// <summary>
        /// Register setup service for setup process
        /// </summary>
        public static void RegisterSetupIOC()
        {
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();

            #region Register required service for setup process

            // Register site setup service
            container.Register(() => new EzCMSEntities(), Lifestyle.Scoped);
            container.Register <DbContext>(() => new EzCMSEntities(), Lifestyle.Scoped);

            container.Register(typeof(ILogger), () => new Logger(MethodBase.GetCurrentMethod().DeclaringType));
            container.Register(typeof(IRepository <>), typeof(Repository <>));
            container.Register(typeof(IHierarchyRepository <>), typeof(HierarchyRepository <>));

            container.Register(typeof(IPageRepository), typeof(PageRepository));
            container.Register(typeof(IUserRepository), typeof(UserRepository));
            container.Register(typeof(IClientNavigationRepository), typeof(ClientNavigationRepository));
            container.Register(typeof(ISiteSetupService), typeof(SiteSetupService));
            container.Register(typeof(IStarterKitService), typeof(StarterKitService));
            container.Register(typeof(IBackgroundTaskManager), typeof(BackgroundTaskManager));

            #endregion

            #region Register SetupController

            // Only get SetupController
            var registeredControllerTypes = SimpleInjectorMvcExtensions.GetControllerTypesToRegister(
                container, EzCMSUtilities.GetEzCMSAssemblies().ToArray()).Where(type => type.Name == "SetupController");

            foreach (var controllerType in registeredControllerTypes)
            {
                RegisterController(container, controllerType);
            }

            #endregion

            HostContainer.SetContainer(container);
            container.Verify();

            DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
            GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
        }