public SiteMapNodeHelperFactory(
            ISiteMapNodeCreatorFactory siteMapNodeCreatorFactory,
            IDynamicSiteMapNodeBuilderFactory dynamicSiteMapNodeBuilderFactory,
            IReservedAttributeNameProvider reservedAttributeNameProvider,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMapNodeCreatorFactory == null)
            {
                throw new ArgumentNullException("siteMapNodeCreatorFactory");
            }
            if (dynamicSiteMapNodeBuilderFactory == null)
            {
                throw new ArgumentNullException("dynamicSiteMapNodeBuilderFactory");
            }
            if (reservedAttributeNameProvider == null)
            {
                throw new ArgumentNullException("reservedAttributeNameProvider");
            }
            if (cultureContextFactory == null)
            {
                throw new ArgumentNullException("cultureContextFactory");
            }

            this.siteMapNodeCreatorFactory        = siteMapNodeCreatorFactory;
            this.dynamicSiteMapNodeBuilderFactory = dynamicSiteMapNodeBuilderFactory;
            this.reservedAttributeNameProvider    = reservedAttributeNameProvider;
            this.cultureContextFactory            = cultureContextFactory;
        }
        public XmlSiteMapResult(
            int page,
            ISiteMapNode rootNode,
            IEnumerable<string> siteMapCacheKeys,
            string baseUrl,
            string siteMapUrlTemplate,
            ISiteMapLoader siteMapLoader,
            IUrlPath urlPath,
            ICultureContextFactory cultureContextFactory)
        {
            if (siteMapLoader == null)
                throw new ArgumentNullException("siteMapLoader");
            if (urlPath == null)
                throw new ArgumentNullException("urlPath");
            if (cultureContextFactory == null)
                throw new ArgumentNullException("cultureContextFactory");

            this.Ns = "http://www.sitemaps.org/schemas/sitemap/0.9";
            this.Page = page;
            this.RootNode = rootNode;
            this.SiteMapCacheKeys = siteMapCacheKeys;
            this.BaseUrl = baseUrl;
            this.SiteMapUrlTemplate = siteMapUrlTemplate;
            this.siteMapLoader = siteMapLoader;
            this.urlPath = urlPath;
            this.cultureContextFactory = cultureContextFactory;
        }
        public SiteMapBuilder(
            ISiteMapNodeProvider siteMapNodeProvider,
            ISiteMapNodeVisitor siteMapNodeVisitor,
            ISiteMapHierarchyBuilder siteMapHierarchyBuilder,
            ISiteMapNodeHelperFactory siteMapNodeHelperFactory,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMapNodeProvider == null)
                throw new ArgumentNullException("siteMapNodeProvider");
            if (siteMapNodeVisitor == null)
                throw new ArgumentNullException("siteMapNodeVisitor");
            if (siteMapHierarchyBuilder == null)
                throw new ArgumentNullException("siteMapHierarchyBuilder");
            if (siteMapNodeHelperFactory == null)
                throw new ArgumentNullException("siteMapNodeHelperFactory");
            if (cultureContextFactory == null)
                throw new ArgumentNullException("cultureContextFactory");

            this.siteMapNodeProvider = siteMapNodeProvider;
            this.siteMapHierarchyBuilder = siteMapHierarchyBuilder;
            this.siteMapNodeHelperFactory = siteMapNodeHelperFactory;
            this.siteMapNodeVisitor = siteMapNodeVisitor;
            this.cultureContextFactory = cultureContextFactory;
        }
        public XmlSiteMapResult(
            int page,
            ISiteMapNode rootNode,
            IEnumerable <string> siteMapCacheKeys,
            string baseUrl,
            string siteMapUrlTemplate,
            ISiteMapLoader siteMapLoader,
            IUrlPath urlPath,
            ICultureContextFactory cultureContextFactory)
        {
            if (siteMapLoader == null)
            {
                throw new ArgumentNullException("siteMapLoader");
            }
            if (urlPath == null)
            {
                throw new ArgumentNullException("urlPath");
            }
            if (cultureContextFactory == null)
            {
                throw new ArgumentNullException("cultureContextFactory");
            }

            this.Ns                    = "http://www.sitemaps.org/schemas/sitemap/0.9";
            this.Page                  = page;
            this.RootNode              = rootNode;
            this.SiteMapCacheKeys      = siteMapCacheKeys;
            this.BaseUrl               = baseUrl;
            this.SiteMapUrlTemplate    = siteMapUrlTemplate;
            this.siteMapLoader         = siteMapLoader;
            this.urlPath               = urlPath;
            this.cultureContextFactory = cultureContextFactory;
        }
        public SiteMapNodeHelper(
            ISiteMap siteMap,
            ICultureContext cultureContext,
            ISiteMapNodeCreatorFactory siteMapNodeCreatorFactory,
            IDynamicSiteMapNodeBuilderFactory dynamicSiteMapNodeBuilderFactory,
            IReservedAttributeNameProvider reservedAttributeNameProvider,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMap == null)
                throw new ArgumentNullException("siteMap");
            if (cultureContext == null)
                throw new ArgumentNullException("cultureContext");
            if (siteMapNodeCreatorFactory == null)
                throw new ArgumentNullException("siteMapNodeCreatorFactory");
            if (dynamicSiteMapNodeBuilderFactory == null)
                throw new ArgumentNullException("dynamicSiteMapNodeBuilderFactory");
            if (reservedAttributeNameProvider == null)
                throw new ArgumentNullException("reservedAttributeNameProvider");
            if (cultureContextFactory == null)
                throw new ArgumentNullException("cultureContextFactory");

            this.siteMap = siteMap;
            this.cultureContext = cultureContext;
            this.siteMapNodeCreatorFactory = siteMapNodeCreatorFactory;
            this.dynamicSiteMapNodeBuilderFactory = dynamicSiteMapNodeBuilderFactory;
            this.reservedAttributeNameProvider = reservedAttributeNameProvider;
            this.cultureContextFactory = cultureContextFactory;
        }
        public SiteMapBuilderFactory(
            ISiteMapNodeVisitor siteMapNodeVisitor,
            ISiteMapHierarchyBuilder siteMapHierarchyBuilder,
            ISiteMapNodeHelperFactory siteMapNodeHelperFactory,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMapNodeVisitor == null)
            {
                throw new ArgumentNullException("siteMapNodeVisitor");
            }
            if (siteMapHierarchyBuilder == null)
            {
                throw new ArgumentNullException("siteMapHierarchyBuilder");
            }
            if (siteMapNodeHelperFactory == null)
            {
                throw new ArgumentNullException("siteMapNodeHelperFactory");
            }
            if (cultureContextFactory == null)
            {
                throw new ArgumentNullException("cultureContextFactory");
            }

            this.siteMapHierarchyBuilder  = siteMapHierarchyBuilder;
            this.siteMapNodeHelperFactory = siteMapNodeHelperFactory;
            this.siteMapNodeVisitor       = siteMapNodeVisitor;
            this.cultureContextFactory    = cultureContextFactory;
        }
 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 DynamicSiteMapNodeBuilderFactory(
            ISiteMapNodeCreatorFactory siteMapNodeCreatorFactory,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMapNodeCreatorFactory == null)
                throw new ArgumentNullException("siteMapNodeCreatorFactory");
            if (cultureContextFactory == null)
                throw new ArgumentNullException("cultureContextFactory");

            this.siteMapNodeCreatorFactory = siteMapNodeCreatorFactory;
            this.cultureContextFactory = cultureContextFactory;
        }
        public XmlSiteMapResultFactory(
            ISiteMapLoader siteMapLoader,
            IUrlPath urlPath,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMapLoader == null)
                throw new ArgumentNullException("siteMapLoader");
            if (urlPath == null)
                throw new ArgumentNullException("urlPath");
            if (cultureContextFactory == null)
                throw new ArgumentNullException("cultureContextFactory");

            this.siteMapLoader = siteMapLoader;
            this.urlPath = urlPath;
            this.cultureContextFactory = cultureContextFactory;
        }
        public DynamicSiteMapNodeBuilder(
            ISiteMapNodeCreator siteMapNodeCreator,
            ICultureContext cultureContext,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMapNodeCreator == null)
                throw new ArgumentNullException("siteMapNodeCreator");
            if (cultureContext == null)
                throw new ArgumentNullException("cultureContext");
            if (cultureContextFactory == null)
                throw new ArgumentNullException("cultureContextFactory");

            this.siteMapNodeCreator = siteMapNodeCreator;
            this.cultureContext = cultureContext;
            this.cultureContextFactory = cultureContextFactory;
        }
        public DynamicSiteMapNodeBuilderFactory(
            ISiteMapNodeCreatorFactory siteMapNodeCreatorFactory,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMapNodeCreatorFactory == null)
            {
                throw new ArgumentNullException("siteMapNodeCreatorFactory");
            }
            if (cultureContextFactory == null)
            {
                throw new ArgumentNullException("cultureContextFactory");
            }

            this.siteMapNodeCreatorFactory = siteMapNodeCreatorFactory;
            this.cultureContextFactory     = cultureContextFactory;
        }
 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 XmlSiteMapResultFactory(
            ISiteMapLoader siteMapLoader,
            IUrlPath urlPath,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMapLoader == null)
            {
                throw new ArgumentNullException("siteMapLoader");
            }
            if (urlPath == null)
            {
                throw new ArgumentNullException("urlPath");
            }
            if (cultureContextFactory == null)
            {
                throw new ArgumentNullException("cultureContextFactory");
            }

            this.siteMapLoader         = siteMapLoader;
            this.urlPath               = urlPath;
            this.cultureContextFactory = cultureContextFactory;
        }
        public DynamicSiteMapNodeBuilder(
            ISiteMapNodeCreator siteMapNodeCreator,
            ICultureContext cultureContext,
            ICultureContextFactory cultureContextFactory
            )
        {
            if (siteMapNodeCreator == null)
            {
                throw new ArgumentNullException("siteMapNodeCreator");
            }
            if (cultureContext == null)
            {
                throw new ArgumentNullException("cultureContext");
            }
            if (cultureContextFactory == null)
            {
                throw new ArgumentNullException("cultureContextFactory");
            }

            this.siteMapNodeCreator    = siteMapNodeCreator;
            this.cultureContext        = cultureContext;
            this.cultureContextFactory = cultureContextFactory;
        }