/// <summary> /// Gets a <see cref="IProviderNode"/> whose anme is <paramref name="name"/> /// and belongs to the unamed providers group. /// </summary> /// <param name="providers"> /// A <see cref="IProvidersNode"/> taht contains a group whose name is /// <see cref="string.Empty"/>. /// </param> /// <param name="name"> /// The name of the provider to get. /// </param> /// <returns></returns> public static bool GetProviderNode(this IProvidersNode providers, string name, out IProviderNode provider) { IProvidersNodeGroup group; if (providers.GetProvidersNodeGroup(string.Empty, out group)) { return(group.GetProviderNode(name, out provider)); } provider = default(IProviderNode); return(false); }
/// <summary> /// Adds the given <see cref="IProvidersNode"/> object to a empty /// <see cref="IProvidersNodeGroup"/> inside the given /// <see cref="IProvidersNode"/> object using the given provider name. /// </summary> /// <param name="nodes"> /// A <see cref="IProvidersNode"/> object to add the <paramref name="node"/> /// </param> /// <param name="node"> /// The <see cref="IProvidersNode"/> object to be added to the /// <paramref name="nodes"/>. /// </param> /// <param name="name"> /// The name to be associated with the provider node. /// </param> public static void Add(this IProvidersNode nodes, string name, IProviderNode node) { IProvidersNodeGroup empty_provider_group; if (!nodes.GetProvidersNodeGroup(string.Empty, out empty_provider_group)) { empty_provider_group = new ProvidersNodeGroup(); nodes.Add(empty_provider_group); } empty_provider_group.Add(name, node); }
public void ShouldResolveOptionsReferences() { const string xml_config_file = @"<providers> <options name='sql-connection-provider'> <option name='connection-string' value='SQL-CONNECTION-STRING'/> <option name='schema' value='dbo'/> </options> <options name=""my-options""> <option ref='sql-connection-provider'/> </options> <provider name=""my-provider"" type=""""> <options> <option name ='my-provider-option'/> <option ref='sql-connection-provider'/> </options> </provider> <provider name=""my-provider-two"" type=""""> <options> <option ref='my-options'/> </options> </provider> </providers>"; var document = new XmlDocument(); document.LoadXml(xml_config_file); var xml_element = (XmlElement)document.FirstChild; IProvidersNode providers_node = ProvidersNode.Parse(xml_element, Path.AbsoluteForApplication(string.Empty)); Assert.AreEqual(1, providers_node.Count); IProviderNode provider = providers_node[string.Empty]["my-provider"]; Assert.AreEqual(3, provider.Options.Count); Assert.AreEqual(true, provider.Options.ContainsKeys("connection-string")); Assert.AreEqual(true, provider.Options.ContainsKeys("schema")); Assert.AreEqual(true, provider.Options.ContainsKeys("my-provider-option")); Assert.AreEqual(1, providers_node.Count); provider = providers_node[string.Empty]["my-provider-two"]; Assert.AreEqual(2, provider.Options.Count); Assert.AreEqual(true, provider.Options.ContainsKeys("connection-string")); Assert.AreEqual(true, provider.Options.ContainsKeys("schema")); }
/// <summary> /// Gets a <see cref="IProviderNode"/> whose anme is <paramref name="name"/> /// and belongs to the unamed providers group. /// </summary> /// <param name="providers"> /// A <see cref="IProvidersNode"/> taht contains a group whose name is /// <see cref="string.Empty"/>. /// </param> /// <param name="name"> /// The name of the provider to get. /// </param> /// <returns></returns> public static IProviderNode GetProviderNode(this IProvidersNode providers, string name) { return(providers.GetProvidersNodeGroup(string.Empty).GetProviderNode(name)); }
/// <summary> /// Adds a <see cref="IProvidersNode"/> object to a empty /// <see cref="IProvidersNodeGroup"/> inside the given /// <see cref="IProvidersNode"/> object using the given provider name and /// type. /// </summary> /// <param name="nodes"> /// The type of the provider to be added. /// </param> /// <param name="type"> /// The <see cref="IProvidersNode"/> object to be added to the /// <paramref name="nodes"/>. /// </param> /// <param name="name"> /// The name to be associated with the provider node. /// </param> /// <remarks> /// This method creates an instance of the <see cref="IProviderNode"/> /// representing the given type and added it to the <paramref name="nodes"/> /// collection. /// </remarks> public static void Add(this IProvidersNode nodes, string name, Type type) { nodes.Add(name, new ProviderNode.Builder(name, type).Build()); }
/// <summary> /// Adds the given <see cref="IProvidersNode"/> object to a empty /// <see cref="IProvidersNodeGroup"/> inside the given /// <see cref="IProvidersNode"/> object. /// </summary> /// <param name="nodes"> /// A <see cref="IProvidersNode"/> object to add the <paramref name="node"/> /// </param> /// <param name="node"> /// The <see cref="IProvidersNode"/> object to be added to the /// <paramref name="nodes"/>. /// </param> public static void Add(this IProvidersNode nodes, IProviderNode node) { nodes.Add(node.Name, node); }