public override IEnumerable <XElement> Install() { Log.LogInformation(nameof(PreConfigurationInstaller), "Start"); try { // Default dependency is not registered in Console Mode var builder = new ContainerBuilder(); builder.Register(c => ComposerOvertureClient.CreateFromConfig()).As <IOvertureClient>().SingleInstance(); builder.RegisterType <NullCacheProvider>().As <ICacheProvider>(); builder.RegisterType <CategoryRepository>().As <ICategoryRepository>().SingleInstance(); builder.RegisterType <CategoryAndNavigationBuilder>().As <ICategoryAndNavigationBuilder>().SingleInstance(); var container = builder.Build(); var categoryAndNavigationBuilder = container.Resolve <ICategoryAndNavigationBuilder>(); Dictionary <string, string> displayNames = null; var mainMenuDisplayNames = Configuration.SingleOrDefault(f => f.Name == "MainMenuDisplayNames"); if (mainMenuDisplayNames != null) { displayNames = new Dictionary <string, string>(); mainMenuDisplayNames.Elements("add").ToList() .ForEach(d => { var locale = d.Attributes("locale").Select(a => a.Value).FirstOrDefault(); var displayName = d.Value; if (!string.IsNullOrWhiteSpace(locale)) { displayNames[locale] = displayName; Log.LogInformation("PreConfigurationInstaller", $"{locale}: '{displayName}'"); } }); } categoryAndNavigationBuilder.ReBuildCategoriesAndMenu(displayNames); } catch (Exception ex) { Log.LogError(nameof(PreConfigurationInstaller), ex); } Log.LogInformation(nameof(PreConfigurationInstaller), "End"); yield break; }
private static void RegisterSitemapGenerationDependencies(ContainerBuilder builder) { // Register overture client + product url provider + scope provider + culture service builder.Register(container => ComposerOvertureClient.CreateFromConfig()).As <IOvertureClient>().SingleInstance(); builder.RegisterType <WebsiteProductUrlProvider>().As <IProductUrlProvider>(); builder.RegisterType <ProductUrlParamFactory>().As <IProductUrlParamFactory>(); builder.RegisterType <SiteConfiguration>().As <ISiteConfiguration>(); builder.RegisterType <PageService>().As <IPageService>(); builder.Register(container => ServiceLocator.GetService <ICookieAccesserSettings>()).SingleInstance(); builder.Register(container => ServiceLocator.GetService <ICdnDamProviderSettings>()).SingleInstance(); builder.Register(container => ServiceLocator.GetService <IC1SitemapConfiguration>()).SingleInstance(); builder.RegisterType <ScopeProvider>().As <IScopeProvider>().SingleInstance(); builder.RegisterType <CultureService>().As <ICultureService>().SingleInstance(); // C1 content sitemap provider builder.RegisterType <C1ContentSitemapEntryProvider>().AsSelf().SingleInstance(); builder.RegisterType <C1ContentSitemapProviderConfig>().AsSelf().SingleInstance(); builder.RegisterType <C1ContentSitemapProvider>().As <ISitemapProvider>().SingleInstance(); builder.RegisterType <C1ContentSitemapPageExcludeProvider>().As <IC1ContentSitemapPageExcludeProvider>().SingleInstance(); builder.RegisterType <C1ContentSitemapDataTypesIncluder>().As <IC1ContentSitemapDataTypesIncluder>().SingleInstance(); // Product sitemap provider builder.RegisterType <ProductSitemapEntryProvider>().AsSelf().SingleInstance(); builder.RegisterType <ProductSitemapProviderConfig>().AsSelf().SingleInstance(); builder.RegisterType <ProductSitemapProvider>().As <ISitemapProvider>().SingleInstance(); // Sitemap index generator builder.RegisterType <SitemapIndexGenerator>().As <ISitemapIndexGenerator>().SingleInstance(); // Sitemap Generator builder.Register(container => ServiceLocator.GetService <ISitemapGeneratorConfig>()).SingleInstance(); builder.RegisterType <SitemapGenerator>().AsSelf().As <ISitemapGenerator>().SingleInstance(); }