Example #1
0
        public static ModularApplicationBuilder UseStaticFilesModules(this ModularApplicationBuilder modularApp)
        {
            modularApp.Configure(app =>
            {
                var extensionManager = app.ApplicationServices.GetRequiredService <IExtensionManager>();
                var env = app.ApplicationServices.GetRequiredService <IHostingEnvironment>();

                // TODO: configure the location and parameters (max-age) per module.
                var availableExtensions = extensionManager.GetExtensions();
                foreach (var extension in availableExtensions)
                {
                    var contentPath = extension.ExtensionFileInfo.PhysicalPath != null
                        ? Path.Combine(extension.ExtensionFileInfo.PhysicalPath, "Content")
                        : null;

                    var contentSubPath = Path.Combine(extension.SubPath, "Content");

                    if (env.ContentRootFileProvider.GetDirectoryContents(contentSubPath).Exists)
                    {
                        IFileProvider fileProvider;
                        if (env.IsDevelopment())
                        {
                            var fileProviders = new List <IFileProvider>();
                            fileProviders.Add(new ModuleProjectContentFileProvider(env, contentSubPath));

                            if (contentPath != null)
                            {
                                fileProviders.Add(new PhysicalFileProvider(contentPath));
                            }
                            else
                            {
                                fileProviders.Add(new ModuleEmbeddedFileProvider(env, contentSubPath));
                            }

                            fileProvider = new CompositeFileProvider(fileProviders);
                        }
                        else
                        {
                            if (contentPath != null)
                            {
                                fileProvider = new PhysicalFileProvider(contentPath);
                            }
                            else
                            {
                                fileProvider = new ModuleEmbeddedFileProvider(env, contentSubPath);
                            }
                        }

                        app.UseStaticFiles(new StaticFileOptions
                        {
                            RequestPath  = "/" + extension.Id,
                            FileProvider = fileProvider
                        });
                    }
                }
            });

            return(modularApp);
        }
Example #2
0
 public static IApplicationBuilder UseOrchardCore(this IApplicationBuilder app, Action <IApplicationBuilder> configure = null)
 {
     V_0               = ServiceProviderServiceExtensions.GetRequiredService <IHostEnvironment>(app.get_ApplicationServices());
     V_1               = ServiceProviderServiceExtensions.GetRequiredService <IApplicationContext>(app.get_ApplicationServices());
     stackVariable8    = new IFileProvider[2];
     stackVariable8[0] = new ModuleEmbeddedFileProvider(V_1);
     stackVariable8[1] = V_0.get_ContentRootFileProvider();
     V_0.set_ContentRootFileProvider(new CompositeFileProvider(stackVariable8));
     ServiceProviderServiceExtensions.GetRequiredService <IWebHostEnvironment>(app.get_ApplicationServices()).set_ContentRootFileProvider(V_0.get_ContentRootFileProvider());
     dummyVar0 = UseMiddlewareExtensions.UseMiddleware <PoweredByMiddleware>(app, Array.Empty <object>());
     dummyVar1 = UseMiddlewareExtensions.UseMiddleware <ModularTenantContainerMiddleware>(app, Array.Empty <object>());
     if (configure != null)
     {
         configure.Invoke(app);
     }
     stackVariable30    = new object[1];
     stackVariable30[0] = app.get_ServerFeatures();
     dummyVar2          = UseMiddlewareExtensions.UseMiddleware <ModularTenantRouterMiddleware>(app, stackVariable30);
     return(app);
 }