Exemple #1
0
        /// <summary>
        /// Add a parameter
        /// </summary>
        /// <param name="name">Name of parameter, can contain a string array.</param>
        /// <param name="value">Value</param>
        /// <example>
        /// <code>
        /// ArrayParameterCollection array = new ArrayParameterCollection();
        /// array.Add("user[FirstName]", "Jonas");
        /// array.Add("user[FirstName]", "Arne");
        /// string firstName = array["user"]["FirstName"].Value; // "Arne" is returned
        /// foreach (string value in array["user"]["FirstName"])
        ///   Console.WriteLine(value);  // each name is displayed.
        /// </code>
        /// </example>
        public void Add(string name, string value)
        {
            int pos = name.IndexOf('[');

            if (pos != -1)
            {
                string myName = name.Substring(0, pos);
                name = name.Remove(0, pos + 1);
                pos  = name.IndexOf(']');
                name = name.Remove(pos, 1);

                ArrayParameterCollection mine = GetItem(myName);
                if (mine == null)
                {
                    mine = new ArrayParameterCollection(myName, string.Empty);
                    _items.Add(myName, mine);
                }

                mine.Add(name, value);
                return;
            }

            // new parameter
            ArrayParameterCollection current = GetItem(name);

            if (current == null)
            {
                current = new ArrayParameterCollection(name, value);
                _items.Add(name, current);
                return;
            }

            // existing
            current.Values.Add(value);
        }
		public void Test()
		{
			ParameterCollection temp = new ParameterCollection();
			temp.Add("schedule[day][1][open]", "08:00");
			temp.Add("schedule[day][1][close]", "16:00");
			temp.Add("schedule[day][2][open]", "07:00");
			temp.Add("schedule[day][2][close]", "16:00");

			ArrayParameterCollection col = new ArrayParameterCollection(temp);
			Assert.Equal("07:00", col["schedule"]["day"]["2"]["open"].Value);
		}
        /// <summary>
        /// Add a parameter
        /// </summary>
        /// <param name="name">Name of parameter, can contain a string array.</param>
        /// <param name="value">Value</param>
        /// <example>
        /// <code>
        /// ArrayParameterCollection array = new ArrayParameterCollection();
        /// array.Add("user[FirstName]", "Jonas");
        /// array.Add("user[FirstName]", "Arne");
        /// string firstName = array["user"]["FirstName"].Value; // "Arne" is returned
        /// foreach (string value in array["user"]["FirstName"])
        ///   Console.WriteLine(value);  // each name is displayed.
        /// </code>
        /// </example>
        public void Add(string name, string value)
        {
            int pos = name.IndexOf('[');
            if (pos != -1)
            {
                string myName = name.Substring(0, pos);
                name = name.Remove(0, pos + 1);
                pos = name.IndexOf(']');
                name = name.Remove(pos, 1);

                ArrayParameterCollection mine = GetItem(myName);
                if (mine == null)
                {
                    mine = new ArrayParameterCollection(myName, string.Empty);
                    _items.Add(myName, mine);
                }

                mine.Add(name, value);
                return;
            }

            // new parameter
            ArrayParameterCollection current = GetItem(name);
            if (current == null)
            {
                current = new ArrayParameterCollection(name, value);
                _items.Add(name, current);
                return;
            }

            // existing
            current.Values.Add(value);
        }