public SiteMapNodeVisibilityProviderStrategy(ISiteMapNodeVisibilityProvider[] siteMapNodeVisibilityProviders, string defaultProviderName) { if (siteMapNodeVisibilityProviders == null) throw new ArgumentNullException("siteMapNodeVisibilityProviders"); this.siteMapNodeVisibilityProviders = siteMapNodeVisibilityProviders; this.defaultProviderName = defaultProviderName; }
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); }