Beispiel #1
0
 public void Merge(ParameterValueDictionary source)
 {
     foreach (var param in source)
     {
         this[param.Key] = param.Value;
     }
 }
Beispiel #2
0
        /// <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);
     }
 }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
        /// <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);
        }