public void Merge(ParameterValueDictionary source) { foreach (var param in source) { this[param.Key] = param.Value; } }
/// <summary> Initializes a new instance of the <see cref="UrlBuilder"/>. </summary> /// <param name="url">The name of the page, including extension. </param> public UrlBuilder(string url) { Requires.IsNotNullOrEmpty(url, "url"); this.url = url; this.parameters = new ParameterValueDictionary(); }
internal static void AddParameters(UrlBuilder builder, params object[] parameters) { foreach (var param in parameters) { var dictionary = new ParameterValueDictionary(param); builder.MergeParameters(dictionary); } }
/// <summary> Adds a parameter to the page being called. </summary> /// <param name="parameters"> Parameters as anonymous object. </param> public UrlBuilder MergeParameters(ParameterValueDictionary parameters) { Requires.IsNotNull(parameters, "parameters"); this.parameters.Merge(parameters); return(this); }
/// <summary> /// Adds the parameters and overwrites duplicates. The merged collection is leading. /// </summary> /// <param name="parameters">The parameters.</param> /// <exception cref="System.InvalidOperationException">The following keys already exist in the paramter collection: + /// string.Join(\n - , duplicates.Select(d => d.Key).ToArray())</exception> public UrlBuilder AddParameters(ParameterValueDictionary parameters) { var duplicates = from param in this.parameters where parameters.Keys.Contains(param.Key) select param; if (duplicates.Any()) { throw new InvalidOperationException("The following keys already exist in the paramter collection: " + string.Join("\n - ", duplicates.Select(d => d.Key).ToArray())); } this.parameters.Merge(parameters); return(this); }