/// <summary>
 /// Register a routes for the google analytics module.
 /// </summary>
 /// <param name="context">The module context.</param>
 /// <param name="containerBuilder">The container builder.</param>
 public override void RegisterCustomRoutes(ModuleRegistrationContext context, ContainerBuilder containerBuilder)
 {
     context.MapRoute(
         "bcms-google-sitemap",
         GoogleAnalyticsModuleHelper.GetSitemapUrl(cmsConfiguration),
         new { area = AreaName, controller = "GoogleSitemap", action = "Index" });
 }
        /// <summary>
        /// Registers module controller types.
        /// </summary>
        /// <param name="registrationContext">The area registration context.</param>
        /// <param name="containerBuilder">The container builder.</param>
        /// <param name="controllerExtensions">The controller extensions.</param>
        internal void RegisterModuleControllers(ModuleRegistrationContext registrationContext, ContainerBuilder containerBuilder, IControllerExtensions controllerExtensions)
        {
            var controllerTypes = controllerExtensions.GetControllerTypes(GetType().Assembly);

            if (controllerTypes != null)
            {
                foreach (Type controllerType in controllerTypes)
                {
                    string key = (AreaName + "-" + controllerType.Name).ToUpperInvariant();

                    containerBuilder
                    .RegisterType(controllerType)
                    .AsSelf()
                    .Keyed <IController>(key)
                    .WithMetadata("ControllerType", controllerType)
                    .InstancePerDependency()
                    .PropertiesAutowired(PropertyWiringOptions.PreserveSetValues);
                }

                registrationContext.MapRoute(
                    string.Format("bcms_{0}_internal_routes", AreaName),
                    string.Format("{0}/{{controller}}/{{action}}", AreaName),
                    new
                {
                    area = AreaName
                });
            }
        }
        public override void RegisterCustomRoutes(ModuleRegistrationContext context, ContainerBuilder containerBuilder)
        {
            context.MapRoute(
                        "bcms-setup-database-first-time",
                        SetupDatabaseRoute,
                        new
                            {
                                area = AreaName,
                                controller = "Install",
                                action = "SetupDatabase"
                            });

            context.MapRoute(
                        "bcms-setup-database-test-connection",
                        TestConnectionRoute,
                        new
                        {
                            area = AreaName,
                            controller = "Install",
                            action = "TestConnection"
                        });
        }
        public override void RegisterCustomRoutes(ModuleRegistrationContext context, ContainerBuilder containerBuilder)
        {
            if (Configuration.Users != null)
            {
                if (Configuration.Users.CreateDefaultUserOnStart)
                {
                    context.MapRoute(
                        "bcms-users-register-first-user",
                        AreaName + "/register",
                        new
                            {
                                area = AreaName,
                                controller = "Registration",
                                action = "CreateFirstUser"
                            });
                }

                if (Configuration.Users.EnableCmsFormsAuthentication)
                {
                    context.MapRoute(
                        "bcms-users-login",
                        "login",
                        new
                        {
                            area = AreaName,
                            controller = "Authentication",
                            action = "Login"
                        });

                    context.MapRoute(
                        "bcms-users-logout",
                        "logout",
                        new
                        {
                            area = AreaName,
                            controller = "Authentication",
                            action = "Logout"
                        });                 
                }
            }
        }
        /// <summary>
        /// Creates the resource routes for 6 levels folder structure.
        /// </summary>
        /// <param name="context">The context.</param>
        private void CreateEmbeddedResourcesRoutes(ModuleRegistrationContext context)
        {
            string[] urls = new[]
                {
                    "file/{area}/{file}.{resourceType}/{*all}",
                    "file/{area}/{folder1}/{file}.{resourceType}/{*all}",
                    "file/{area}/{folder1}/{folder2}/{file}.{resourceType}/{*all}",
                    "file/{area}/{folder1}/{folder2}/{folder3}/{file}.{resourceType}/{*all}",
                    "file/{area}/{folder1}/{folder2}/{folder3}/{folder4}/{file}.{resourceType}/{*all}",
                    "file/{area}/{folder1}/{folder2}/{folder3}/{folder4}/{folder5}/{file}.{resourceType}/{*all}",
                    "file/{area}/{folder1}/{folder2}/{folder3}/{folder4}/{folder5}/{folder6}/{file}.{resourceType}/{*all}"
                };

            int i = 0;
            foreach (var url in urls)
            {
                context.MapRoute(
                    AreaName + "-level" + i++,
                    url,
                    new
                    {
                        controller = "EmbeddedResources",
                        action = "Index"
                    },
                    new
                    {
                        resourceType = new MimeTypeRouteConstraint()
                    },
                    new[] { typeof(EmbeddedResourcesController).Namespace });
            }
        }
        /// <summary>
        /// Registers a routes.
        /// </summary>
        /// <param name="context">The area registration context.</param>
        /// <param name="containerBuilder">The container builder.</param>
        public override void RegisterCustomRoutes(ModuleRegistrationContext context, ContainerBuilder containerBuilder)
        {
            context.MapRoute(
                "bcms_" + AreaName + "_MainJs",
                string.Format(RootModuleConstants.AutoGeneratedJsFilePathPattern, "bcms.main.js").TrimStart('/'),
                new
                    {
                        area = AreaName,
                        controller = "Rendering",
                        action = "RenderMainJsFile"
                    },
                new[] { typeof(RenderingController).Namespace });

            context.MapRoute(
                "bcms_" + AreaName + "_ProcessorJs",
                string.Format(RootModuleConstants.AutoGeneratedJsFilePathPattern, "bcms.processor.js").TrimStart('/'),
                new
                    {
                        area = AreaName,
                        controller = "Rendering",
                        action = "RenderProcessorJsFile"
                    },
                new[] { typeof(RenderingController).Namespace });

            context.MapRoute(
                "bcms_" + AreaName + "_PreviewPage",
                "bcms/preview/{pageId}/{pageContentId}",
                new
                {
                    area = AreaName,
                    controller = "Preview",
                    action = "Index"
                },
                new[] { typeof(PreviewController).Namespace });

            CreateEmbeddedResourcesRoutes(context);

            // All CMS Pages:
            context.MapRoute("bcms_" + AreaName + "_AllPages",
                "{*data}",
                new
                    {
                        area = AreaName,
                        controller = "Cms",
                        action = "Index"
                    },
                    new[] { typeof(CmsController).Namespace });
        }
        /// <summary>
        /// Registers a routes.
        /// </summary>
        /// <param name="context">The area registration context.</param>
        /// <param name="containerBuilder">The container builder.</param>
        /// <param name="configuration">The configuration.</param>
        public override void RegisterCustomRoutes(ModuleRegistrationContext context, ContainerBuilder containerBuilder, ICmsConfiguration configuration)
        {
            context.MapRoute(
                "bcms_" + AreaName + "_MainJs",
                string.Format("file/{0}/Scripts/main.js", AreaName),
                new
                    {
                        area = AreaName,
                        controller = "Rendering",
                        action = "RenderMainJsFile"
                    },
                new[] { typeof(RenderingController).Namespace });

            context.MapRoute(
                "bcms_" + AreaName + "_ProcessorJs",
                string.Format("file/{0}/Scripts/bcms.processor.js", AreaName),
                new
                    {
                        area = AreaName,
                        controller = "Rendering",
                        action = "RenderProcessorJsFile"
                    },
                new[] { typeof(RenderingController).Namespace });

            CreateEmbeddedResourcesRoutes(context);

            // All CMS Pages:
            context.MapRoute("bcms_" + AreaName + "_AllPages", "{*data}",
                new
                    {
                        area = AreaName,
                        controller = "Cms",
                        action = "Index"
                    },
                    new[] { typeof(CmsController).Namespace });
        }
Example #8
0
        /// <summary>
        /// Registers module controller types.
        /// </summary>
        /// <param name="registrationContext">The area registration context.</param>
        /// <param name="containerBuilder">The container builder.</param>
        /// <param name="configuration">The configuration.</param>
        /// <param name="controllerExtensions">The controller extensions.</param>
        internal void RegisterModuleControllers(ModuleRegistrationContext registrationContext, ContainerBuilder containerBuilder, IControllerExtensions controllerExtensions)
        {
            var controllerTypes = controllerExtensions.GetControllerTypes(GetType().Assembly);

            if (controllerTypes != null)
            {
                var allModuleActions = new Dictionary <Type, IEnumerable <MethodInfo> >();
                foreach (Type controllerType in controllerTypes)
                {
                    string key = (AreaName + "-" + controllerType.Name).ToUpperInvariant();
                    containerBuilder
                    .RegisterType(controllerType)
                    .AsSelf()
                    .Keyed <IController>(key)
                    .WithMetadata("ControllerType", controllerType)
                    .InstancePerDependency()
                    .PropertiesAutowired(PropertyWiringOptions.PreserveSetValues);

                    var controllerActions = controllerExtensions.GetControllerActions(controllerType);

                    if (controllerActions != null)
                    {
                        allModuleActions.Add(controllerType, controllerActions);
                    }
                }

                //foreach (var item in allModuleActions)
                //{
                //    var controllerName = controllerExtensions.GetControllerName(item.Key);
                //    var controllerActions = item.Value;

                //    foreach (var actionMethod in controllerActions)
                //    {
                //        var ignoreAutoRouteAttribute = actionMethod.GetCustomAttributes(typeof(IgnoreAutoRouteAttribute), false);
                //        var nonActionAttribute = actionMethod.GetCustomAttributes(typeof(NonActionAttribute), false);
                //        if (ignoreAutoRouteAttribute.Length > 0 || nonActionAttribute.Length > 0)
                //        {
                //            continue;
                //        }

                //        registrationContext.MapRoute(
                //            string.Format("bcms_{0}_{1}_{2}", AreaName, controllerName, actionMethod.Name),
                //            string.Format("{0}/{1}/{2}", AreaName, controllerName, actionMethod.Name),
                //            new
                //            {
                //                area = AreaName,
                //                controller = controllerName,
                //                action = actionMethod.Name
                //            },
                //            new[] { item.Key.Namespace });
                //    }
                //}

                // All internal routes:
                registrationContext.MapRoute(
                    string.Format("bcms_{0}_internal_routes", AreaName),
                    string.Format("{0}/{{controller}}/{{action}}", AreaName),
                    new
                {
                    area = AreaName
                }
                    );
            }
        }