public SiteMapNodeVisibilityProviderStrategy(ISiteMapNodeVisibilityProvider[] siteMapNodeVisibilityProviders, string defaultProviderName)
        {
            if (siteMapNodeVisibilityProviders == null)
                throw new ArgumentNullException("siteMapNodeVisibilityProviders");

            this.siteMapNodeVisibilityProviders = siteMapNodeVisibilityProviders;
            this.defaultProviderName = defaultProviderName;
        }
示例#2
0
        public ISiteMapNodeVisibilityProvider GetProvider(string providerName)
        {
            ISiteMapNodeVisibilityProvider provider = null;

            if (!String.IsNullOrEmpty(providerName))
            {
                provider = siteMapNodeVisibilityProviders.FirstOrDefault(x => x.AppliesTo(providerName));
                if (provider == null)
                {
                    throw new MvcSiteMapException(String.Format(Resources.Messages.NamedSiteMapNodeVisibilityProviderNotFound, providerName));
                }
            }
            else if (!string.IsNullOrEmpty(defaultProviderName))
            {
                // Return the configured default provider
                provider = siteMapNodeVisibilityProviders.FirstOrDefault(x => x.AppliesTo(defaultProviderName));
            }
            return(provider);
        }