private static void Initialize() { if (_providers == null) { HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, "Feature_not_supported_at_this_level"); lock (_lockObject) { if (_providers == null) { SiteMapSection siteMap = RuntimeConfig.GetAppConfig().SiteMap; if (siteMap == null) { _providers = new SiteMapProviderCollection(); } else { if (!siteMap.Enabled) { throw new InvalidOperationException(System.Web.SR.GetString("SiteMap_feature_disabled", new object[] { "system.web/siteMap" })); } siteMap.ValidateDefaultProvider(); _providers = siteMap.ProvidersInternal; _provider = _providers[siteMap.DefaultProvider]; _providers.SetReadOnly(); } } } } }
public static SiteMapNode GetCurrentNode(SiteMapProvider selectedSiteMapProvider) { // get the node matching the current URL location var currentNode = selectedSiteMapProvider.CurrentNode; // if there is no node matching the current URL path, // remove parts until we get a hit if (currentNode == null) { var url = HttpContext.Current.Request.Url.LocalPath; while (url.Length > 0) { // see if we can find a matching node currentNode = selectedSiteMapProvider.FindSiteMapNode(url); // if we get a hit, stop if (currentNode != null) break; // if not, remove the last path item var lastSlashlocation = url.LastIndexOf("/"); if (lastSlashlocation < 0) break; // protects us from malformed URLs url = url.Remove(lastSlashlocation); } } return currentNode; }
protected internal override void AddNode(SiteMapNode node, SiteMapNode parentNode) { if (node == null) { throw new ArgumentNullException("node"); } if (parentNode == null) { throw new ArgumentNullException("parentNode"); } SiteMapProvider nodeProvider = node.Provider; if (nodeProvider != this) { throw new ArgumentException("SiteMapNode '" + node + "' cannot be found in current provider, only nodes in the same provider can be added.", "node"); } SiteMapProvider parentNodeProvider = parentNode.Provider; if (nodeProvider != parentNodeProvider) { throw new ArgumentException("SiteMapNode '" + parentNode + "' cannot be found in current provider, only nodes in the same provider can be added.", "parentNode"); } AddNodeNoCheck(node, parentNode); }
public FileSiteMapNode(SiteMapProvider provider, string url) : base(provider, url) { Url = url; Title = VirtualPathUtility.GetFileName(url); FileExtension = VirtualPathUtility.GetExtension(url).TrimStart('.'); }
public SiteMapNode(SiteMapProvider provider, string key, string url, string title, string description, IList roles, NameValueCollection attributes, NameValueCollection explicitResourceKeys, string implicitResourceKey) { _provider = provider; _title = title; _description = description; _roles = roles; _attributes = attributes; _key = key; _resourceKeys = explicitResourceKeys; _resourceKey = implicitResourceKey; if (url != null) { _url = url.Trim(); } _virtualPath = CreateVirtualPathFromUrl(_url); if (_key == null) { throw new ArgumentNullException("key"); } if (_provider == null) { throw new ArgumentNullException("provider"); } }
protected internal override void RemoveNode(SiteMapNode node) { if (node == null) { throw new ArgumentNullException("node"); } SiteMapProvider provider = node.Provider; if (provider != this) { for (SiteMapProvider provider2 = provider.ParentProvider; provider2 != this; provider2 = provider2.ParentProvider) { if (provider2 == null) { throw new InvalidOperationException(System.Web.SR.GetString("XmlSiteMapProvider_cannot_remove_node", new object[] { node.ToString(), this.Name, provider.Name })); } } } if (node.Equals(provider.GetRootNodeCore())) { throw new InvalidOperationException(System.Web.SR.GetString("SiteMapProvider_cannot_remove_root_node")); } if (provider != this) { provider.RemoveNode(node); } base.RemoveNode(node); }
/// <summary> /// Determines whether node is accessible to user. /// </summary> /// <param name="controllerTypeResolver">The controller type resolver.</param> /// <param name="provider">The provider.</param> /// <param name="context">The context.</param> /// <param name="node">The node.</param> /// <returns> /// <c>true</c> if accessible to user; otherwise, <c>false</c>. /// </returns> public virtual bool IsAccessibleToUser(IControllerTypeResolver controllerTypeResolver, SiteMapProvider provider, HttpContext context, SiteMapNode node) { // Is security trimming enabled? if (!provider.SecurityTrimmingEnabled) { return true; } // Use child modules bool result = true; foreach (var module in ChildModules) { try { result &= module.IsAccessibleToUser(controllerTypeResolver, provider, context, node); } catch (AclModuleNotSupportedException) { result &= true; // Convention throughout the provider: if the IAclModule can not authenticate a user, true is returned. } if (result == false) { return false; } } // Return return result; }
private SiteMapNode GetNodeFromProvider(string providerName) { SiteMapProvider providerFromName = this.GetProviderFromName(providerName); SiteMapNode rootNodeCore = null; if (providerFromName is XmlSiteMapProvider) { XmlSiteMapProvider provider2 = (XmlSiteMapProvider)providerFromName; StringCollection strings = new StringCollection(); if (this._parentSiteMapFileCollection != null) { foreach (string str in this._parentSiteMapFileCollection) { strings.Add(str); } } provider2.BuildSiteMap(); strings.Add(this._normalizedVirtualPath.VirtualPathString); if (strings.Contains(VirtualPath.GetVirtualPathString(provider2._normalizedVirtualPath))) { throw new InvalidOperationException(System.Web.SR.GetString("XmlSiteMapProvider_FileName_already_in_use", new object[] { provider2._virtualPath })); } provider2._parentSiteMapFileCollection = strings; } rootNodeCore = providerFromName.GetRootNodeCore(); if (rootNodeCore == null) { throw new InvalidOperationException(System.Web.SR.GetString("XmlSiteMapProvider_invalid_GetRootNodeCore", new object[] { providerFromName.Name })); } this.ChildProviderTable.Add(providerFromName, rootNodeCore); this._childProviderList = null; providerFromName.ParentProvider = this; return(rootNodeCore); }
protected internal override void AddNode(SiteMapNode node, SiteMapNode parentNode) { if (node == null) { throw new ArgumentNullException("node"); } if (parentNode == null) { throw new ArgumentNullException("parentNode"); } SiteMapProvider provider = node.Provider; SiteMapProvider provider2 = parentNode.Provider; if (provider != this) { throw new ArgumentException(System.Web.SR.GetString("XmlSiteMapProvider_cannot_add_node", new object[] { node.ToString() }), "node"); } if (provider2 != this) { throw new ArgumentException(System.Web.SR.GetString("XmlSiteMapProvider_cannot_add_node", new object[] { parentNode.ToString() }), "parentNode"); } lock (base._lock) { this.RemoveNode(node); this.AddNodeInternal(node, parentNode, null); } }
protected internal override void AddNode(SiteMapNode node, SiteMapNode parentNode) { if (node == null) { throw new ArgumentNullException("node"); } if (parentNode == null) { throw new ArgumentNullException("parentNode"); } SiteMapProvider ownerProvider = node.Provider; SiteMapProvider parentOwnerProvider = parentNode.Provider; if (ownerProvider != this) { throw new ArgumentException(SR.GetString(SR.XmlSiteMapProvider_cannot_add_node, node.ToString()), "node"); } if (parentOwnerProvider != this) { throw new ArgumentException(SR.GetString(SR.XmlSiteMapProvider_cannot_add_node, parentNode.ToString()), "parentNode"); } lock (_lock) { // First remove it from its current location. RemoveNode(node); AddNodeInternal(node, parentNode, null); } }
public static SiteMapNode FindSiteMapNode(this SiteMapProvider provider, Uri uri) { if (uri == null) { throw new ArgumentNullException("uri"); } return(provider.FindSiteMapNode((!uri.IsAbsoluteUri ? uri.OriginalString : uri.LocalPath))); }
public void Add(SiteMapProvider provider) { if (provider == null) { throw new ArgumentNullException("provider"); } base.Add(provider); }
public TridionSiteMapNode(SiteMapProvider provider, string key, string uri, string url, string title, string description, IList roles, NameValueCollection attributes, NameValueCollection explicitResourceKeys, string implicitResourceKey) : base(provider, key, url, title, description, roles, attributes, explicitResourceKeys, implicitResourceKey) { if (url.StartsWith("tcm:")) { this.Url = this.MakeDummyUrl(url); } this.Uri = uri; }
/*public MvcSiteMapNode(SiteMapProvider provider, string key, ISiteMapUrlResolver urlResolver) : base(provider, key) { this.urlResolver = urlResolver; }*/ public MvcSiteMapNode(SiteMapProvider provider, string key, string url, string title, string description, IList roles, NameValueCollection attributes, NameValueCollection explicitResourceKeys, string implicitResourceKey, ISiteMapUrlResolver urlResolver, string controllerName, string actionName) : base(provider, key, url, title, description, roles, attributes, explicitResourceKeys, implicitResourceKey) { this.urlResolver = urlResolver; Controller = controllerName; Action = actionName; }
private SiteMapProvider GetProviderFromName(string providerName) { SiteMapProvider provider = SiteMap.Providers[providerName]; if (provider == null) { throw new ProviderException(System.Web.SR.GetString("Provider_Not_Found", new object[] { providerName })); } return(provider); }
void AddNodeNoCheck(SiteMapNode node, SiteMapNode parentNode) { base.AddNode(node, parentNode); SiteMapProvider nodeProvider = node.Provider; if (nodeProvider != this) { RegisterChildProvider(nodeProvider.Name, nodeProvider); } }
public IEnumerable<SiteMapNode> GetVirtualNodes(SiteMapProvider provider) { List<SiteMapNode> list = new List<SiteMapNode>(); var siteMapNode = new SiteMapNode( provider, Guid.NewGuid().ToString(), string.Empty, DummySiteMapNodeTitle, "description"); list.Add(siteMapNode); return list; }
public static bool IsDeniedURLWithProvider(string url, string app, SiteMapProvider smProvider) { if (url.ToLower().EndsWith("accessdeny.aspx") || url.ToLower().EndsWith("changepassword.aspx") || url.ToLower().EndsWith("default.aspx") || url.ToLower().EndsWith("profile.aspx")) return false; //if (UserHelper.Username == "admin" || UserHelper.IsAdmin) return false; if (UserHelper.IsSysAdmin) return false; if ((smProvider != null) && (smProvider.CurrentNode == null)) return true; //foreach (string role in RoleDAO.GetRolesForUser(app, UserHelper.Username)) // if (IsDeniedURL(url, app, role)) return true; return !PermissionDAO.IsAnyRoleInPath(app, RoleDAO.GetRolesForUser(app, UserHelper.Username), url); }
void RegisterChildProvider(string name, SiteMapProvider smp) { Dictionary <string, bool> childProvidersPresent = ChildProvidersPresent; if (childProvidersPresent.ContainsKey(name)) { return; } childProvidersPresent.Add(name, true); ChildProviders.Add(smp); }
///<summary> ///Initializes the provider. ///</summary> /// ///<param name="config">A collection of the name/value pairs representing the provider-specific /// attributes specified in the configuration for this provider. /// The <c>providerId</c> attribute may be used to override the name being used for looking up an object definition. /// </param> ///<param name="name">The friendly name of the provider.</param> ///<exception cref="T:System.ArgumentNullException">The <paramref name="name"/> or <paramref name="config"/> is null.</exception> ///<exception cref="T:System.InvalidOperationException">An attempt is made to call <see cref="M:System.Configuration.Provider.ProviderBase.Initialize(System.String,System.Collections.Specialized.NameValueCollection)"></see> on a provider after the provider has already been initialized.</exception> ///<exception cref="T:System.ArgumentException">The <paramref name="name"/> has a length of zero or providerId attribute is not set.</exception> public override void Initialize(string name, NameValueCollection config) { if (config == null) throw new ArgumentNullException("config"); string providerId = config["providerId"]; if (String.IsNullOrEmpty(providerId)) providerId = name; config.Remove("providerId"); this.wrappedProvider = (System.Web.SiteMapProvider)WebApplicationContext.GetRootContext().GetObject(providerId); this.wrappedProvider.Initialize(name,config); }
public override void RefreshSchema(bool preferSilent) { try { this.SuppressDataSourceEvents(); this._siteMapProvider = null; this.OnDataSourceChanged(EventArgs.Empty); } finally { this.ResumeDataSourceEvents(); } }
/// <summary> /// Gets the current site map node for child action. /// </summary> /// <param name="controller">The controller.</param> /// <param name="provider">The provider.</param> /// <returns></returns> public static SiteMapNode GetCurrentSiteMapNodeForChildAction(this ControllerBase controller, SiteMapProvider provider) { // Is DefaultSiteMapProvider in use? DefaultSiteMapProvider mvcProvider = provider as DefaultSiteMapProvider; if (mvcProvider != null && controller.ControllerContext.IsChildAction) { return mvcProvider.FindSiteMapNode(controller.ControllerContext); } else { return provider.CurrentNode; } }
private SiteMapProvider GetProviderFromName(string providerName) { Debug.Assert(providerName != null); SiteMapProvider provider = SiteMap.Providers[providerName]; if (provider == null) { throw new ProviderException(SR.GetString(SR.Provider_Not_Found, providerName)); } return(provider); }
public void AddArray(SiteMapProvider[] providerArray) { if (providerArray == null) { throw new ArgumentNullException("providerArray"); } foreach (SiteMapProvider provider in providerArray) { if (this[provider.Name] != null) { throw new ArgumentException(System.Web.SR.GetString("SiteMapProvider_Multiple_Providers_With_Identical_Name", new object[] { provider.Name })); } this.Add(provider); } }
public SiteMapNode (SiteMapProvider provider, string key, string url, string title, string description, IList roles, NameValueCollection attributes, NameValueCollection explicitResourceKeys, string implicitResourceKey) { if (provider == null) throw new ArgumentNullException ("provider"); if (key == null) throw new ArgumentNullException ("key"); this.provider = provider; this.key = key; this.url = url; this.title = title; this.description = description; this.roles = roles; this.attributes = attributes; this.resourceKeys = explicitResourceKeys; this.implicitResourceKey = implicitResourceKey; }
/// <summary> /// Determines whether node is accessible to user. /// </summary> /// <param name="controllerTypeResolver">The controller type resolver.</param> /// <param name="provider">The provider.</param> /// <param name="context">The context.</param> /// <param name="node">The node.</param> /// <returns> /// <c>true</c> if accessible to user; otherwise, <c>false</c>. /// </returns> public bool IsAccessibleToUser(IControllerTypeResolver controllerTypeResolver, SiteMapProvider provider, HttpContext context, SiteMapNode node) { // Is security trimming enabled? if (!provider.SecurityTrimmingEnabled) { return true; } // Is it a regular node? var mvcNode = node as MvcSiteMapNode; if (mvcNode == null) { if (provider.ParentProvider != null) { return provider.ParentProvider.IsAccessibleToUser(context, node); } } // If we have roles assigned, check them against the roles defined in the sitemap if (node.Roles != null && node.Roles.Count > 0) { // if there is an authenticated user and the role allows anyone authenticated ("*"), show it if ((context.User.Identity.IsAuthenticated) && node.Roles.Contains("*")) { return true; } // if there is no user, but the role allows unauthenticated users ("?"), show it if ((!context.User.Identity.IsAuthenticated) && node.Roles.Contains("?")) { return true; } // if the user is in one of the listed roles, show it if (node.Roles.OfType<string>().Any(role => context.User.IsInRole(role))) { return true; } // if we got this far, deny showing return false; } // Everything seems OK... return true; }
private SiteMapNode GetNodeFromProvider(string providerName) { SiteMapProvider provider = GetProviderFromName(providerName); SiteMapNode node = null; // Check infinite recursive sitemap files if (provider is XmlSiteMapProvider) { XmlSiteMapProvider xmlProvider = (XmlSiteMapProvider)provider; StringCollection parentSiteMapFileCollection = new StringCollection(); if (_parentSiteMapFileCollection != null) { foreach (string filename in _parentSiteMapFileCollection) { parentSiteMapFileCollection.Add(filename); } } // Make sure the provider is initialized before adding to the collection. xmlProvider.BuildSiteMap(); parentSiteMapFileCollection.Add(_normalizedVirtualPath.VirtualPathString); if (parentSiteMapFileCollection.Contains(VirtualPath.GetVirtualPathString(xmlProvider._normalizedVirtualPath))) { throw new InvalidOperationException(SR.GetString(SR.XmlSiteMapProvider_FileName_already_in_use, xmlProvider._virtualPath)); } xmlProvider._parentSiteMapFileCollection = parentSiteMapFileCollection; } node = provider.GetRootNodeCore(); if (node == null) { throw new InvalidOperationException( SR.GetString(SR.XmlSiteMapProvider_invalid_GetRootNodeCore, ((ProviderBase)provider).Name)); } ChildProviderTable.Add(provider, node); _childProviderList = null; provider.ParentProvider = this; return(node); }
protected virtual void RemoveProvider(string providerName) { if (providerName == null) { throw new ArgumentNullException("providerName"); } lock (base._lock) { SiteMapProvider providerFromName = this.GetProviderFromName(providerName); SiteMapNode node = (SiteMapNode)this.ChildProviderTable[providerFromName]; if (node == null) { throw new InvalidOperationException(System.Web.SR.GetString("XmlSiteMapProvider_cannot_find_provider", new object[] { providerFromName.Name, this.Name })); } providerFromName.ParentProvider = null; this.ChildProviderTable.Remove(providerFromName); this._childProviderList = null; base.RemoveNode(node); } }
public mojoSiteMapNode( SiteMapProvider provider, string key, string url, string title, string description, IList roles, NameValueCollection attributes, NameValueCollection explicitResourceKeys, string implicitResourceKey) : base(provider, key, url, title, description, roles, attributes, explicitResourceKeys, implicitResourceKey) { }
protected internal override void RemoveNode(SiteMapNode node) { if (node == null) { throw new ArgumentNullException("node"); } SiteMapProvider ownerProvider = node.Provider; if (ownerProvider != this) { // Only nodes defined in this provider tree can be removed. SiteMapProvider parentProvider = ownerProvider.ParentProvider; while (parentProvider != this) { if (parentProvider == null) { // Cannot remove nodes defined in other providers throw new InvalidOperationException( SR.GetString(SR.XmlSiteMapProvider_cannot_remove_node, node.ToString(), this.Name, ownerProvider.Name)); } parentProvider = parentProvider.ParentProvider; } } if (node.Equals(ownerProvider.GetRootNodeCore())) { throw new InvalidOperationException(SR.GetString(SR.SiteMapProvider_cannot_remove_root_node)); } if (ownerProvider != this) { // Remove node from the owner provider. ownerProvider.RemoveNode(node); } base.RemoveNode(node); }
protected virtual void AddProvider(string providerName, SiteMapNode parentNode) { if (parentNode == null) { throw new ArgumentNullException("parentNode"); } if (parentNode.Provider != this) { throw new ArgumentException("The Provider property of the parentNode does not reference the current provider.", "parentNode"); } SiteMapProvider smp = SiteMap.Providers [providerName]; if (smp == null) { throw new ProviderException("Provider with name [" + providerName + "] was not found."); } AddNode(smp.GetRootNodeCore()); RegisterChildProvider(providerName, smp); }
protected virtual void RemoveProvider(string providerName) { if (providerName == null) { throw new ArgumentNullException("providerName"); } lock (_lock) { SiteMapProvider provider = GetProviderFromName(providerName); SiteMapNode rootNode = (SiteMapNode)ChildProviderTable[provider]; if (rootNode == null) { throw new InvalidOperationException(SR.GetString(SR.XmlSiteMapProvider_cannot_find_provider, provider.Name, this.Name)); } provider.ParentProvider = null; ChildProviderTable.Remove(provider); _childProviderList = null; base.RemoveNode(rootNode); } }
public SiteMapNode(SiteMapProvider provider, string key, string url, string title, string description, IList roles, NameValueCollection attributes, NameValueCollection explicitResourceKeys, string implicitResourceKey) { if (provider == null) { throw new ArgumentNullException("provider"); } if (key == null) { throw new ArgumentNullException("key"); } this.provider = provider; this.key = key; this.url = url; this.title = title; this.description = description; this.roles = roles; this.attributes = attributes; this.resourceKeys = explicitResourceKeys; this.resourceKey = implicitResourceKey; }
private static void Initialize() { if (_providers != null) { return; } HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, SR.Feature_not_supported_at_this_level); lock (_lockObject) { if (_providers != null) { return; } SiteMapSection config = RuntimeConfig.GetAppConfig().SiteMap; if (config == null) { // just return an empty collection so that designer will work. _providers = new SiteMapProviderCollection(); return; } if (!config.Enabled) { throw new InvalidOperationException(SR.GetString(SR.SiteMap_feature_disabled, SiteMap.SectionName)); } // Make sure the default provider exists. config.ValidateDefaultProvider(); _providers = config.ProvidersInternal; _provider = _providers[config.DefaultProvider]; _providers.SetReadOnly(); } }
public SiteMapNode(SiteMapProvider provider, string key) { }
private void EnsureChildSiteMapProviderUpToDate(SiteMapProvider childProvider) { SiteMapNode oldNode = (SiteMapNode)ChildProviderTable[childProvider]; SiteMapNode newNode = childProvider.GetRootNodeCore(); if (newNode == null) { throw new ProviderException(SR.GetString(SR.XmlSiteMapProvider_invalid_sitemapnode_returned, childProvider.Name)); } // child providers have been updated. if (!oldNode.Equals(newNode)) { // If the child provider table has been updated, simply return null. // This will happen when the current provider's sitemap file is changed or Clear() is called; if (oldNode == null) { return; } lock (_lock) { oldNode = (SiteMapNode)ChildProviderTable[childProvider]; // If the child provider table has been updated, simply return null. See above. if (oldNode == null) { return; } newNode = childProvider.GetRootNodeCore(); if (newNode == null) { throw new ProviderException(SR.GetString(SR.XmlSiteMapProvider_invalid_sitemapnode_returned, childProvider.Name)); } if (!oldNode.Equals(newNode)) { // If the current provider does not contain any nodes but one child provider // ie. _siteMapNode == oldNode // the oldNode needs to be removed from Url table and the new node will be added. if (_siteMapNode.Equals(oldNode)) { UrlTable.Remove(oldNode.Url); KeyTable.Remove(oldNode.Key); UrlTable.Add(newNode.Url, newNode); KeyTable.Add(newNode.Key, newNode); _siteMapNode = newNode; } // First find the parent node SiteMapNode parent = (SiteMapNode)ParentNodeTable[oldNode]; // parent is null when the provider does not contain any static nodes, ie. // it only contains definition to include one child provider. if (parent != null) { // Update the child nodes table SiteMapNodeCollection list = (SiteMapNodeCollection)ChildNodeCollectionTable[parent]; // Add the newNode to where the oldNode is within parent node's collection. int index = list.IndexOf(oldNode); if (index != -1) { list.Remove(oldNode); list.Insert(index, newNode); } else { list.Add(newNode); } // Update the parent table ParentNodeTable[newNode] = parent; ParentNodeTable.Remove(oldNode); // Update the Url table UrlTable.Remove(oldNode.Url); KeyTable.Remove(oldNode.Key); UrlTable.Add(newNode.Url, newNode); KeyTable.Add(newNode.Key, newNode); } else { // Notify the parent provider to update its child provider collection. XmlSiteMapProvider provider = ParentProvider as XmlSiteMapProvider; if (provider != null) { provider.EnsureChildSiteMapProviderUpToDate(this); } } // Update provider nodes; ChildProviderTable[childProvider] = newNode; _childProviderList = null; } } } }
public void Add(SiteMapProvider provider) { Add((ProviderBase)provider); }
public void Add(SiteMapProvider provider) { }
protected virtual ISiteMapNode GetRootNode(ISiteMap siteMap, SiteMapProvider provider) { var root = provider.RootNode; return GetSiteMapNodeFromProviderNode(siteMap, root, null); }
private void WriteFullSiteMap(XmlWriter writer, SiteMapProvider provider) { writer.WriteStartElement("urlset", SiteMapNamespace); WriteElement(writer, provider.RootNode, new HashSet<string>()); writer.WriteEndElement(); }
public SiteMapResolveEventArgs(HttpContext context, SiteMapProvider provider) { _context = context; _provider = provider; }
public SiteMapNode (SiteMapProvider provider, string key, string url, string title, string description) : this (provider, key, url, title, description, null, null, null, null) {}
/// <summary> /// Initializes a new instance of the <see cref="SiteMapPageNode"/> class. /// </summary> /// <param name="provider">The provider.</param> /// <param name="key">The key.</param> /// <param name="url">The URL.</param> /// <param name="title">The title.</param> public SiteMapPageNode(SiteMapProvider provider, string key, string url, string title) : base(provider, key, url, title) { }
public void AddArray (SiteMapProvider[] providerArray) { foreach (SiteMapProvider p in providerArray) Add (p); }
protected static SiteMapNode GetRootNodeCoreFromProvider(SiteMapProvider provider) { return(provider.GetRootNodeCore()); }
/// <summary> /// Creates a new MvcSiteMapNode instance /// </summary> public MvcSiteMapNode(SiteMapProvider provider, string key) : base(provider, key) { Id = key; }
/// <summary> /// Initializes a new instance of the <see cref="MvcSiteMapNode"/> class. /// </summary> /// <param name="provider">The provider.</param> /// <param name="key">The key.</param> /// <param name="explicitResourceKeys">The explicit resource keys.</param> /// <param name="implicitResourceKey">The implicit resource key.</param> public MvcSiteMapNode(SiteMapProvider provider, string key, NameValueCollection explicitResourceKeys, string implicitResourceKey) : base(provider, key, "", "", "", new ArrayList(), new NameValueCollection(), explicitResourceKeys, implicitResourceKey) { }
public RootNode(SiteMapProvider provider, string url) : base(provider, url) { Title = "/"; }
public SiteMapNode(SiteMapProvider provider, string key, string url, string title) : this(provider, key, url, title, null, null, null, null, null) { }
/// <summary> /// Called by the framework once the component instance /// is initialized /// </summary> public override void Initialize() { if (providerName == null) { targetProvider = providerAccessor.DefaultProvider; } else { targetProvider = providerAccessor[providerName]; } if (targetProvider == null) { throw new ViewComponentException("Could not obtain provider instance"); } base.Initialize(); }
public SiteMapNode(SiteMapProvider provider, string key, string url, string title, string description) : this(provider, key, url, title, description, null, null, null, null) { }
void BuildSiteMapRecursive(XmlNode xmlNode, SiteMapNode parent) { if (xmlNode.Name != "siteMapNode") { throw new ConfigurationException("incorrect element name", xmlNode); } string attrValue = GetNonEmptyOptionalAttribute(xmlNode, "provider"); if (attrValue != null) { SiteMapProvider provider = SiteMap.Providers [attrValue]; if (provider == null) { throw new ProviderException("Provider with name [" + attrValue + "] was not found."); } provider.ParentProvider = this; SiteMapNode providerRoot = provider.GetRootNodeCore(); if (parent == null) { root = providerRoot; } else { AddNodeNoCheck(providerRoot, parent); } return; } attrValue = GetNonEmptyOptionalAttribute(xmlNode, "siteMapFile"); if (attrValue != null) { var nvc = new NameValueCollection(); nvc.Add("siteMapFile", attrValue); string description = GetOptionalAttribute(xmlNode, "description"); if (!String.IsNullOrEmpty(description)) { nvc.Add("description", description); } string name = MapUrl(attrValue); var provider = new XmlSiteMapProvider(); provider.Initialize(name, nvc); SiteMapNode providerRoot = provider.GetRootNodeCore(); if (parent == null) { root = providerRoot; } else { AddNodeNoCheck(providerRoot, parent); } return; } SiteMapNode curNode = ConvertToSiteMapNode(xmlNode); if (parent == null) { root = curNode; } else { AddNodeNoCheck(curNode, parent); } XmlNodeList childNodes = xmlNode.ChildNodes; if (childNodes == null || childNodes.Count < 1) { return; } foreach (XmlNode child in childNodes) { if (child.NodeType != XmlNodeType.Element) { continue; } BuildSiteMapRecursive(child, curNode); } }
public void Add (SiteMapProvider provider) { Add ((ProviderBase)provider); }
public void AddArray(SiteMapProvider[] providerArray) { }
public SiteMapNode (SiteMapProvider provider, string key, string url, string title) : this (provider, key, url, title, null, null, null, null, null) {}
public SiteMapNode(SiteMapProvider provider, string key) : this(provider, key, null, null, null, null, null, null, null) { }