public BootstrapperController(PackagesConfigContent content) { _content = content; }
public DownloadController(PackagesConfigContent content) { _content = content; }
protected void Application_Start() { // Get the application data path. var appDataPath = new DirectoryPath(AppDomain.CurrentDomain.GetData("DataDirectory").ToString()); // Read all addins. // TODO: Fix this container hack. var addinReader = new AddinReader(new FileSystem()); var addins = addinReader.Read(appDataPath.CombineWithFilePath("addins.xml")); // Define packages. var packageDefinitions = new List <PackageDefinition>(); packageDefinitions.AddRange(addins.GetAddins() .Where(x => x.PackageDefinition != null) .Where(x => x.PackageDefinition.Filters.Count > 0) .Select(x => x.PackageDefinition)); // Add core packages. packageDefinitions.Add(new PackageDefinition { Filters = new List <string> { "/**/Cake.Core.dll", "/**/Cake.Common.dll", "/**/Cake.Core.xml", "/**/Cake.Common.xml" }, PackageName = "Cake", Metadata = new CakeMetadata() }); // Add testing packages. packageDefinitions.Add(new PackageDefinition { Filters = new List <string> { "/**/Cake.Testing.dll", "/**/Cake.Testing.xml", }, PackageName = "Cake.Testing", Metadata = new CakeMetadata() }); // Create the document model by downloading the nuget package. string cakeVersion; var documentModel = NuGetBootstrapper.Download(appDataPath, new NuGetConfiguration { Packages = packageDefinitions }, out cakeVersion); // Build the DSL model. var dslModel = DslModelBuilder.Build(documentModel); // Generate packages.config content. var packagesConfig = new PackagesConfigContent(cakeVersion); // Build the container. var builder = new ContainerBuilder(); builder.RegisterModule <CoreModule>(); builder.RegisterControllers(typeof(MvcApplication).Assembly); builder.RegisterInstance(documentModel).As <DocumentModel>().SingleInstance(); builder.RegisterInstance(dslModel).As <DslModel>().SingleInstance(); builder.RegisterType <DocumentModelResolver>().SingleInstance(); builder.RegisterType <RouteService>().SingleInstance(); builder.RegisterType <UrlResolver>().As <IUrlResolver>().As <UrlResolver>().SingleInstance(); builder.RegisterType <SignatureCache>().SingleInstance(); builder.RegisterType <ApiServices>().SingleInstance(); builder.RegisterType <LanguageProvider>().SingleInstance(); builder.RegisterType <SyntaxRenderer>().SingleInstance(); builder.RegisterType <SignatureRenderer>().SingleInstance(); builder.RegisterType <ApiServices>().SingleInstance(); builder.RegisterInstance(packagesConfig).SingleInstance(); var container = builder.Build(); // Read the topics and register. var reader = container.Resolve <ITopicReader>(); var topics = reader.Read(appDataPath.CombineWithFilePath("docs.xml")); // Read all blog entries. var blogReader = container.Resolve <IBlogReader>(); var blogIndex = blogReader.Parse(appDataPath.Combine("blog")); // Update the container. builder = new ContainerBuilder(); builder.RegisterInstance(topics).As <TopicTree>().SingleInstance(); builder.RegisterInstance(blogIndex).As <BlogIndex>().SingleInstance(); builder.RegisterInstance(addins).As <AddinIndex>().SingleInstance(); builder.Update(container); // Perform registrations. AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); }