Exemple #1
0
        public void Activate()
        {
            var appBuilder = new AppBuilder();

            appBuilder.Properties["host.AppName"] = _shellSettings.Name;

            var orderedMiddlewares = _owinMiddlewareProviders
                                     .SelectMany(p => p.GetOwinMiddlewares())
                                     .OrderBy(obj => obj.Priority, new FlatPositionComparer());

            foreach (var middleware in orderedMiddlewares)
            {
                middleware.Configure(appBuilder);
            }

            // Register the Orchard middleware after all others.
            appBuilder.UseOrchard();

            var pipeline  = appBuilder.Build();
            var allRoutes = new List <RouteDescriptor>();

            allRoutes.AddRange(_routeProviders.SelectMany(provider => provider.GetRoutes()));
            allRoutes.AddRange(_httpRouteProviders.SelectMany(provider => provider.GetRoutes()));

            _routePublisher.Publish(allRoutes, pipeline);
            _modelBinderPublisher.Publish(_modelBinderProviders.SelectMany(provider => provider.GetModelBinders()));

            using (var scope = _workContextAccessor.CreateWorkContextScope()) {
                using (var events = scope.Resolve <Owned <IOrchardShellEvents> >()) {
                    events.Value.Activated();
                }
            }

            _sweepGenerator.Activate();
        }
Exemple #2
0
        public void Activate()
        {
            IApplicationBuilder appBuilder = new ApplicationBuilder(_serviceProvider);

            appBuilder.Properties["host.AppName"] = _shellSettings.Name;

            var orderedMiddlewares = _middlewareProviders
                                     .SelectMany(p => p.GetMiddlewares())
                                     .OrderBy(obj => obj.Priority);

            foreach (var middleware in orderedMiddlewares)
            {
                middleware.Configure(appBuilder);
            }

            appBuilder.UseOrchard();

            var pipeline = appBuilder.Build();

            var allRoutes = new List <RouteDescriptor>();

            allRoutes.AddRange(_routeProviders.SelectMany(provider => provider.GetRoutes()));

            _routePublisher.Publish(allRoutes, pipeline);
        }
Exemple #3
0
        public Task ActivatingAsync()
        {
            IApplicationBuilder appBuilder = new ApplicationBuilder(_serviceProvider);

            var orderedMiddlewares = _middlewareProviders
                                     .SelectMany(p => p.GetMiddlewares())
                                     .OrderBy(obj => obj.Priority)
                                     .ToArray();

            RequestDelegate pipeline = null;

            // If there are custom middleware for this tenant,
            // build a custom pipeline for its routes
            if (orderedMiddlewares.Length > 0)
            {
                foreach (var middleware in orderedMiddlewares)
                {
                    middleware.Configure(appBuilder);
                }

                pipeline = appBuilder.Build();
            }

            _routePublisher.Publish(
                _routeProviders.SelectMany(provider => provider.GetRoutes()),
                pipeline
                );

            return(Task.CompletedTask);
        }
        public void Activate()
        {
            IAppBuilder appBuilder = new AppBuilder();

            appBuilder.Properties["host.AppName"] = _shellSettings.Name;

            var orderedMiddlewares = _owinMiddlewareProviders
                                     .SelectMany(p => p.GetOwinMiddlewares())
                                     .OrderBy(obj => obj.Priority, new FlatPositionComparer());

            foreach (var middleware in orderedMiddlewares)
            {
                middleware.Configure(appBuilder);
            }

            // register the Orchard middleware after all others
            appBuilder.UseOrchard();

            Func <IDictionary <string, object>, Task> pipeline = appBuilder.Build();

            var allRoutes = new List <RouteDescriptor>();

            allRoutes.AddRange(_routeProviders.SelectMany(provider => provider.GetRoutes()));
            allRoutes.AddRange(_httpRouteProviders.SelectMany(provider => provider.GetRoutes()));

            _routePublisher.Publish(allRoutes, pipeline);
            _modelBinderPublisher.Publish(_modelBinderProviders.SelectMany(provider => provider.GetModelBinders()));

            using (var events = _eventsFactory()) {
                events.Value.Activated();
            }

            _sweepGenerator.Activate();
        }
Exemple #5
0
        public Task ActivatingAsync()
        {
            // Build the middleware pipeline for the current tenant

            IApplicationBuilder appBuilder = new ApplicationBuilder(_serviceProvider);

            var orderedMiddlewares = _middlewareProviders
                                     .SelectMany(p => p.GetMiddlewares())
                                     .OrderBy(obj => obj.Priority)
                                     .ToArray();

            foreach (var middleware in orderedMiddlewares)
            {
                middleware.Configure(appBuilder);
            }

            // Orchard is always the last middleware
            appBuilder.UseMiddleware <OrchardMiddleware>();

            var pipeline = appBuilder.Build();

            _routePublisher.Publish(
                _routeProviders.SelectMany(provider => provider.GetRoutes()),
                pipeline
                );

            return(Task.CompletedTask);
        }
Exemple #6
0
        /// <summary>
        /// 激活外壳完成后执行。
        /// </summary>
        public void Activated()
        {
            var allRoutes = new List <RouteDescriptor>();

            _routeProviders.Invoke(i => i.GetRoutes(allRoutes), Logger);

            _routePublisher.Publish(allRoutes);
        }
        public void Activate()
        {
            _routePublisher.Publish(_routeProviders.SelectMany(provider => provider.GetRoutes()));
            _modelBinderPublisher.Publish(_modelBinderProviders.SelectMany(provider => provider.GetModelBinders()));

            _sweepGenerator.Activate();

            using (var events = _eventsFactory()) {
                events.Value.Activated();
            }
        }
        public void Activate()
        {
            var allRoutes = new List <RouteDescriptor>();

            allRoutes.AddRange(_routeProviders.SelectMany(provider => provider.GetRoutes()));

            _routePublisher.Publish(allRoutes);

            //var endpoint = new DelegateRouteEndpoint(async (context) =>
            //                                        await context
            //                                                .HttpContext
            //                                                .Response
            //                                                .WriteAsync("Hello, World! from " + _shellSettings.Name));

            //_routeBuilder.AddPrefixRoute(_shellSettings.RequestUrlPrefix, "hello/world", endpoint);
        }
        public void Activate()
        {
            var allRoutes = new List <RouteDescriptor>();

            allRoutes.AddRange(_routeProviders.SelectMany(provider => provider.GetRoutes()));
            allRoutes.AddRange(_httpRouteProviders.SelectMany(provider => provider.GetRoutes()));

            _routePublisher.Publish(allRoutes);
            _modelBinderPublisher.Publish(_modelBinderProviders.SelectMany(provider => provider.GetModelBinders()));

            using (var events = _eventsFactory()) {
                events.Value.Activated();
            }

            _sweepGenerator.Activate();
        }
Exemple #10
0
        public void Activate()
        {
            var allRoutes = new List <RouteDescriptor>();

            foreach (var routeProvider in routeProviders)
            {
                routeProvider.GetRoutes(allRoutes);
            }

            routePublisher.Publish(allRoutes);

            using (var events = eventsFactory())
            {
                events.Value.Activated();
            }

            sweepGenerator.Activate();
        }
        public void Configure(IRouteBuilder builder)
        {
            var inlineConstraintResolver = builder.ServiceProvider.GetService <IInlineConstraintResolver>();



            builder.Routes.Insert(0, AttributeRouting.CreateAttributeMegaRoute(builder.ServiceProvider));


            //Add all features route
            _routePublisher.Publish(builder);

            // The default route is added to each tenant as a template route, with a prefix
            builder.Routes.Add(new Microsoft.AspNetCore.Routing.Route(
                                   builder.DefaultHandler,
                                   "Default",
                                   "{area:exists}/{controller}/{action}/{id?}",
                                   null,
                                   null,
                                   null,
                                   inlineConstraintResolver)
                               );
        }