public SiteMapFactoryContainer( ConfigurationSettings settings, IMvcContextFactory mvcContextFactory, IUrlPath urlPath) { this.settings = settings; this.mvcContextFactory = mvcContextFactory; this.requestCache = this.mvcContextFactory.GetRequestCache(); this.urlPath = urlPath; }
public XmlSiteMapResultFactoryContainer(ConfigurationSettings settings) { var siteMapLoaderContainer = new SiteMapLoaderContainer(settings); this.siteMapLoader = siteMapLoaderContainer.ResolveSiteMapLoader(); this.mvcContextFactory = new MvcContextFactory(); this.bindingFactory = new BindingFactory(); this.bindingProvider = new BindingProvider(this.bindingFactory, this.mvcContextFactory); this.urlPath = new UrlPath(this.mvcContextFactory, this.bindingProvider); this.cultureContextFactory = new CultureContextFactory(); }
public ControllerFactoryDecorator( IControllerFactory controllerFactory, ConfigurationSettings settings ) { if (controllerFactory == null) throw new ArgumentNullException("controllerFactory"); if (settings == null) throw new ArgumentNullException("settings"); this.innerControllerFactory = controllerFactory; this.settings = settings; }
private ICacheDetails ResolveCacheDetails(ConfigurationSettings settings) { return new CacheDetails( TimeSpan.FromMinutes(settings.CacheDuration), TimeSpan.MinValue, #if NET35 new AspNetFileCacheDependency(absoluteFileName) #else new RuntimeFileCacheDependency(absoluteFileName) #endif ); }
public DependencyResolverDecorator( IDependencyResolver dependencyResolver, ConfigurationSettings settings ) { if (dependencyResolver == null) throw new ArgumentNullException("dependencyResolver"); if (settings == null) throw new ArgumentNullException("settings"); this.innerDependencyResolver = dependencyResolver; this.settings = settings; }
public static void Compose() { #if !MVC2 // Register global namespaces with Razor so we don't have to import them in Web.config WebPageRazorHost.AddGlobalImport("MvcSiteMapProvider.Web.Html"); WebPageRazorHost.AddGlobalImport("MvcSiteMapProvider.Web.Html.Models"); #endif // Get the configuration settings var settings = new ConfigurationSettings(); // If the config specifies to use an external DI container, skip the internal container. if (!settings.UseExternalDIContainer) { if (settings.EnableSiteMapFile) { // Validate the Xml File. var validator = new SiteMapXmlValidator(); validator.ValidateXml(HostingEnvironment.MapPath(settings.SiteMapFileName)); } #if !MVC2 // If not using a custom DependencyResolver, we prefer to use IControllerFactory if (DependencyResolver.Current.GetType().FullName.Equals("System.Web.Mvc.DependencyResolver+DefaultDependencyResolver")) { #endif // Setup the Controller Factory with a decorator that can resolve the internal controllers var currentFactory = ControllerBuilder.Current.GetControllerFactory(); ControllerBuilder.Current.SetControllerFactory( new ControllerFactoryDecorator(currentFactory, settings)); #if !MVC2 } else { // If using a custom IDependencyResolver, decorate it with our IDependencyResolver so we can resolve // our internal controller. var currentResolver = DependencyResolver.Current; DependencyResolver.SetResolver(new DependencyResolverDecorator(currentResolver, settings)); } #endif // Set the static loader instance var siteMapLoaderContainer = new SiteMapLoaderContainer(settings); SiteMaps.Loader = siteMapLoaderContainer.ResolveSiteMapLoader(); if (settings.EnableSitemapsXml) { // Register the route for SiteMaps XML XmlSiteMapController.RegisterRoutes(RouteTable.Routes); } } }
public SiteMapNodeFactoryContainer( ConfigurationSettings settings, IMvcContextFactory mvcContextFactory, IUrlPath urlPath) { this.absoluteFileName = HostingEnvironment.MapPath(settings.SiteMapFileName); this.settings = settings; this.mvcContextFactory = mvcContextFactory; this.requestCache = this.mvcContextFactory.GetRequestCache(); this.urlPath = urlPath; this.dynamicNodeProviders = this.ResolveDynamicNodeProviders(); this.siteMapNodeUrlResolvers = this.ResolveSiteMapNodeUrlResolvers(); this.siteMapNodeVisibilityProviders = this.ResolveSiteMapNodeVisibilityProviders(settings.DefaultSiteMapNodeVisibiltyProvider); }
public SiteMapNodeFactoryContainer( ConfigurationSettings settings, IMvcContextFactory mvcContextFactory, IUrlPath urlPath) { this.absoluteFileName = HostingEnvironment.MapPath(settings.SiteMapFileName); this.settings = settings; this.mvcContextFactory = mvcContextFactory; this.requestCache = this.mvcContextFactory.GetRequestCache(); this.urlPath = urlPath; this.assemblyProvider = new AttributeAssemblyProvider(settings.IncludeAssembliesForScan, settings.ExcludeAssembliesForScan); this.mvcSiteMapNodeAttributeProvider = new MvcSiteMapNodeAttributeDefinitionProvider(); this.dynamicNodeProviders = this.ResolveDynamicNodeProviders(); this.siteMapNodeUrlResolvers = this.ResolveSiteMapNodeUrlResolvers(); this.siteMapNodeVisibilityProviders = this.ResolveSiteMapNodeVisibilityProviders(settings.DefaultSiteMapNodeVisibiltyProvider); }
public SiteMapLoaderContainer(ConfigurationSettings settings) { // Singleton instances if (settings.EnableSiteMapFile) { this.absoluteFileName = HostingEnvironment.MapPath(settings.SiteMapFileName); } this.mvcContextFactory = new MvcContextFactory(); #if NET35 this.siteMapCache = new SiteMapCache(new AspNetCacheProvider <ISiteMap>(this.mvcContextFactory)); #else this.siteMapCache = new SiteMapCache(new RuntimeCacheProvider <ISiteMap>(System.Runtime.Caching.MemoryCache.Default)); #endif this.cacheDependency = this.ResolveCacheDependency(settings); this.requestCache = this.mvcContextFactory.GetRequestCache(); this.bindingFactory = new BindingFactory(); this.bindingProvider = new BindingProvider(this.bindingFactory, this.mvcContextFactory); this.urlPath = new UrlPath(this.mvcContextFactory, this.bindingProvider); this.siteMapCacheKeyGenerator = new SiteMapCacheKeyGenerator(this.mvcContextFactory); this.siteMapCacheKeyToBuilderSetMapper = new SiteMapCacheKeyToBuilderSetMapper(); this.reservedAttributeNameProvider = new ReservedAttributeNameProvider(settings.AttributesToIgnore); var siteMapNodeFactoryContainer = new SiteMapNodeFactoryContainer(settings, this.mvcContextFactory, this.urlPath, this.reservedAttributeNameProvider); this.siteMapNodeToParentRelationFactory = new SiteMapNodeToParentRelationFactory(); this.nodeKeyGenerator = new NodeKeyGenerator(); this.siteMapNodeFactory = siteMapNodeFactoryContainer.ResolveSiteMapNodeFactory(); this.siteMapNodeCreatorFactory = this.ResolveSiteMapNodeCreatorFactory(); this.cultureContextFactory = new CultureContextFactory(); this.dynamicSiteMapNodeBuilderFactory = new DynamicSiteMapNodeBuilderFactory(this.siteMapNodeCreatorFactory, this.cultureContextFactory); this.siteMapHierarchyBuilder = new SiteMapHierarchyBuilder(); this.siteMapNodeHelperFactory = this.ResolveSiteMapNodeHelperFactory(); this.siteMapNodeVisitor = this.ResolveSiteMapNodeVisitor(settings); this.siteMapXmlNameProvider = new SiteMapXmlNameProvider(); this.attributeAssemblyProviderFactory = new AttributeAssemblyProviderFactory(); this.mvcSiteMapNodeAttributeDefinitionProvider = new MvcSiteMapNodeAttributeDefinitionProvider(); this.siteMapNodeProvider = this.ResolveSiteMapNodeProvider(settings); this.siteMapBuiderSetStrategy = this.ResolveSiteMapBuilderSetStrategy(settings); var siteMapFactoryContainer = new SiteMapFactoryContainer(settings, this.mvcContextFactory, this.urlPath); this.siteMapFactory = siteMapFactoryContainer.ResolveSiteMapFactory(); this.siteMapCreator = new SiteMapCreator(this.siteMapCacheKeyToBuilderSetMapper, this.siteMapBuiderSetStrategy, this.siteMapFactory); }
public SiteMapLoaderContainer(ConfigurationSettings settings) { // Singleton instances if (settings.EnableSiteMapFile) { this.absoluteFileName = HostingEnvironment.MapPath(settings.SiteMapFileName); } this.mvcContextFactory = new MvcContextFactory(); #if NET35 this.siteMapCache = new SiteMapCache(new AspNetCacheProvider<ISiteMap>(this.mvcContextFactory)); #else this.siteMapCache = new SiteMapCache(new RuntimeCacheProvider<ISiteMap>(System.Runtime.Caching.MemoryCache.Default)); #endif this.cacheDependency = this.ResolveCacheDependency(settings); this.requestCache = this.mvcContextFactory.GetRequestCache(); this.bindingFactory = new BindingFactory(); this.bindingProvider = new BindingProvider(this.bindingFactory, this.mvcContextFactory); this.urlPath = new UrlPath(this.mvcContextFactory, this.bindingProvider); this.siteMapCacheKeyGenerator = new SiteMapCacheKeyGenerator(this.mvcContextFactory); this.siteMapCacheKeyToBuilderSetMapper = new SiteMapCacheKeyToBuilderSetMapper(); this.reservedAttributeNameProvider = new ReservedAttributeNameProvider(settings.AttributesToIgnore); var siteMapNodeFactoryContainer = new SiteMapNodeFactoryContainer(settings, this.mvcContextFactory, this.urlPath, this.reservedAttributeNameProvider); this.siteMapNodeToParentRelationFactory = new SiteMapNodeToParentRelationFactory(); this.nodeKeyGenerator = new NodeKeyGenerator(); this.siteMapNodeFactory = siteMapNodeFactoryContainer.ResolveSiteMapNodeFactory(); this.siteMapNodeCreatorFactory = this.ResolveSiteMapNodeCreatorFactory(); this.cultureContextFactory = new CultureContextFactory(); this.dynamicSiteMapNodeBuilderFactory = new DynamicSiteMapNodeBuilderFactory(this.siteMapNodeCreatorFactory, this.cultureContextFactory); this.siteMapHierarchyBuilder = new SiteMapHierarchyBuilder(); this.siteMapNodeHelperFactory = this.ResolveSiteMapNodeHelperFactory(); this.siteMapNodeVisitor = this.ResolveSiteMapNodeVisitor(settings); this.siteMapXmlNameProvider = new SiteMapXmlNameProvider(); this.attributeAssemblyProviderFactory = new AttributeAssemblyProviderFactory(); this.mvcSiteMapNodeAttributeDefinitionProvider = new MvcSiteMapNodeAttributeDefinitionProvider(); this.siteMapNodeProvider = this.ResolveSiteMapNodeProvider(settings); this.siteMapBuiderSetStrategy = this.ResolveSiteMapBuilderSetStrategy(settings); var siteMapFactoryContainer = new SiteMapFactoryContainer(settings, this.mvcContextFactory, this.urlPath); this.siteMapFactory = siteMapFactoryContainer.ResolveSiteMapFactory(); this.siteMapCreator = new SiteMapCreator(this.siteMapCacheKeyToBuilderSetMapper, this.siteMapBuiderSetStrategy, this.siteMapFactory); }
public SiteMapNodeFactoryContainer( ConfigurationSettings settings, IMvcContextFactory mvcContextFactory, IUrlPath urlPath, IReservedAttributeNameProvider reservedAttributeNameProvider) { if (settings.EnableSiteMapFile) { this.absoluteFileName = HostingEnvironment.MapPath(settings.SiteMapFileName); } this.settings = settings; this.mvcContextFactory = mvcContextFactory; this.requestCache = this.mvcContextFactory.GetRequestCache(); this.urlPath = urlPath; this.reservedAttributeNameProvider = reservedAttributeNameProvider; this.javaScriptSerializer = new JavaScriptSerializerAdapter(); this.jsonToDictionaryDeserializer = new JsonToDictionaryDeserializer(this.javaScriptSerializer, this.mvcContextFactory); this.assemblyProvider = new AttributeAssemblyProvider(settings.IncludeAssembliesForScan, settings.ExcludeAssembliesForScan); this.mvcSiteMapNodeAttributeProvider = new MvcSiteMapNodeAttributeDefinitionProvider(); this.dynamicNodeProviders = this.ResolveDynamicNodeProviders(); this.siteMapNodeUrlResolvers = this.ResolveSiteMapNodeUrlResolvers(); this.siteMapNodeVisibilityProviders = this.ResolveSiteMapNodeVisibilityProviders(settings.DefaultSiteMapNodeVisibiltyProvider); }
public SiteMapLoaderContainer(ConfigurationSettings settings) { // Singleton instances this.absoluteFileName = HostingEnvironment.MapPath(settings.SiteMapFileName); this.mvcContextFactory = new MvcContextFactory(); #if NET35 this.siteMapCache = new SiteMapCache(new AspNetCacheProvider <ISiteMap>(this.mvcContextFactory)); #else this.siteMapCache = new SiteMapCache(new RuntimeCacheProvider <ISiteMap>(System.Runtime.Caching.MemoryCache.Default)); #endif this.requestCache = this.mvcContextFactory.GetRequestCache(); this.urlPath = new UrlPath(this.mvcContextFactory); this.siteMapCacheKeyGenerator = new SiteMapCacheKeyGenerator(this.mvcContextFactory); this.siteMapCacheKeyToBuilderSetMapper = new SiteMapCacheKeyToBuilderSetMapper(); this.nodeKeyGenerator = new NodeKeyGenerator(); var siteMapNodeFactoryContainer = new SiteMapNodeFactoryContainer(settings, this.mvcContextFactory, this.urlPath); this.siteMapNodeFactory = siteMapNodeFactoryContainer.ResolveSiteMapNodeFactory(); this.siteMapXmlNameProvider = new SiteMapXmlNameProvider(); this.dynamicNodeBuilder = new DynamicNodeBuilder(this.nodeKeyGenerator, this.siteMapNodeFactory); this.siteMapBuiderSetStrategy = this.ResolveSiteMapBuilderSetStrategy(settings); var siteMapFactoryContainer = new SiteMapFactoryContainer(settings, this.mvcContextFactory, this.urlPath); this.siteMapFactory = siteMapFactoryContainer.ResolveSiteMapFactory(); this.siteMapCreator = new SiteMapCreator(this.siteMapCacheKeyToBuilderSetMapper, this.siteMapBuiderSetStrategy, this.siteMapFactory); }
public SiteMapLoaderContainer(ConfigurationSettings settings) { // Singleton instances this.absoluteFileName = HostingEnvironment.MapPath(settings.SiteMapFileName); this.mvcContextFactory = new MvcContextFactory(); #if NET35 this.siteMapCache = new SiteMapCache(new AspNetCacheProvider<ISiteMap>(this.mvcContextFactory)); #else this.siteMapCache = new SiteMapCache(new RuntimeCacheProvider<ISiteMap>(System.Runtime.Caching.MemoryCache.Default)); #endif this.requestCache = this.mvcContextFactory.GetRequestCache(); this.urlPath = new UrlPath(this.mvcContextFactory); this.siteMapCacheKeyGenerator = new SiteMapCacheKeyGenerator(this.mvcContextFactory); this.siteMapCacheKeyToBuilderSetMapper = new SiteMapCacheKeyToBuilderSetMapper(); this.nodeKeyGenerator = new NodeKeyGenerator(); var siteMapNodeFactoryContainer = new SiteMapNodeFactoryContainer(settings, this.mvcContextFactory, this.urlPath); this.siteMapNodeFactory = siteMapNodeFactoryContainer.ResolveSiteMapNodeFactory(); this.siteMapXmlNameProvider = new SiteMapXmlNameProvider(); this.dynamicNodeBuilder = new DynamicNodeBuilder(this.nodeKeyGenerator, this.siteMapNodeFactory); this.siteMapBuiderSetStrategy = this.ResolveSiteMapBuilderSetStrategy(settings); var siteMapFactoryContainer = new SiteMapFactoryContainer(settings, this.mvcContextFactory, this.urlPath); this.siteMapFactory = siteMapFactoryContainer.ResolveSiteMapFactory(); this.siteMapCreator = new SiteMapCreator(this.siteMapCacheKeyToBuilderSetMapper, this.siteMapBuiderSetStrategy, this.siteMapFactory); }
private ISiteMapBuilderSetStrategy ResolveSiteMapBuilderSetStrategy(ConfigurationSettings settings) { return new SiteMapBuilderSetStrategy( new ISiteMapBuilderSet[] { new SiteMapBuilderSet( "default", settings.SecurityTrimmingEnabled, settings.EnableLocalization, settings.VisibilityAffectsDescendants, settings.UseTitleIfDescriptionNotProvided, this.ResolveSiteMapBuilder(settings), this.ResolveCacheDetails(settings) ) } ); }
private ICacheDependency ResolveCacheDependency(ConfigurationSettings settings) { if (settings.EnableSiteMapFile) { #if NET35 return new AspNetFileCacheDependency(absoluteFileName); #else return new RuntimeFileCacheDependency(absoluteFileName); #endif } else { return new NullCacheDependency(); } }
private ICacheDetails ResolveCacheDetails(ConfigurationSettings settings) { return new CacheDetails( TimeSpan.FromMinutes(settings.CacheDuration), TimeSpan.MinValue, this.cacheDependency ); }
private ISiteMapNodeVisitor ResolveSiteMapNodeVisitor(ConfigurationSettings settings) { if (settings.EnableResolvedUrlCaching) { return new UrlResolvingSiteMapNodeVisitor(); } else { return new NullSiteMapNodeVisitor(); } }
private ISiteMapNodeProvider ResolveSiteMapNodeProvider(ConfigurationSettings settings) { var providers = new List<ISiteMapNodeProvider>(); if (settings.EnableSiteMapFile) { providers.Add(this.ResolveXmlSiteMapNodeProvider(settings.IncludeRootNodeFromSiteMapFile, settings.EnableSiteMapFileNestedDynamicNodeRecursion)); } if (settings.ScanAssembliesForSiteMapNodes) { providers.Add(this.ResolveReflectionSiteMapNodeProvider(settings.IncludeAssembliesForScan, settings.ExcludeAssembliesForScan)); } return new CompositeSiteMapNodeProvider(providers.ToArray()); }
private ISiteMapBuilder ResolveSiteMapBuilder(ConfigurationSettings settings) { return new SiteMapBuilder( this.siteMapNodeProvider, this.siteMapNodeVisitor, this.siteMapHierarchyBuilder, this.siteMapNodeHelperFactory, this.cultureContextFactory); }
private ISiteMapBuilder ResolveSiteMapBuilder(ConfigurationSettings settings) { var builders = new List<ISiteMapBuilder>(); builders.Add(this.ResolveXmlSiteMapBuilder(settings.SiteMapFileName, settings.AttributesToIgnore)); if (settings.ScanAssembliesForSiteMapNodes) { builders.Add(this.ResolveReflectionSiteMapBuilder(settings.IncludeAssembliesForScan, settings.ExcludeAssembliesForScan, settings.AttributesToIgnore)); } if (settings.EnableResolvedUrlCaching) { builders.Add(this.ResolveVisitingSiteMapBuilder()); } return new CompositeSiteMapBuilder(builders.ToArray()); }
public XmlSiteMapResultFactoryContainer(ConfigurationSettings settings) { var siteMapLoaderContainer = new SiteMapLoaderContainer(settings); this.siteMapLoader = siteMapLoaderContainer.ResolveSiteMapLoader(); this.urlPath = new UrlPath(new MvcContextFactory()); }
private ISiteMapBuilder ResolveSiteMapBuilder(ConfigurationSettings settings) { var xmlSiteMapBuilder = this.ResolveXmlSiteMapBuilder(settings.SiteMapFileName, settings.AttributesToIgnore); var visitingSiteMapBuilder = this.ResolveVisitingSiteMapBuilder(); if (settings.ScanAssembliesForSiteMapNodes) { var reflectionSiteMapBuilder = this.ResolveReflectionSiteMapBuilder(settings.IncludeAssembliesForScan, settings.ExcludeAssembliesForScan, settings.AttributesToIgnore); return new CompositeSiteMapBuilder(xmlSiteMapBuilder, reflectionSiteMapBuilder, visitingSiteMapBuilder); } else { return new CompositeSiteMapBuilder(xmlSiteMapBuilder, visitingSiteMapBuilder); } }
private ISiteMapBuilderSetStrategy ResolveSiteMapBuilderSetStrategy(ConfigurationSettings settings) { return new SiteMapBuilderSetStrategy( new ISiteMapBuilderSet[] { new SiteMapBuilderSet( "default", settings.SecurityTrimmingEnabled, settings.EnableLocalization, this.ResolveSiteMapBuilder(settings), this.ResolveCacheDetails(settings) ) } ); }