/// <summary>
        /// Creates a new TokenizedPagingParams and sets it parameters from the specified map
        /// </summary>
        /// <param name="map">a StringValueMap to initialize this TokenizedPagingParams</param>
        /// <returns>a newly created PagingParams.</returns>
        public static TokenizedPagingParams FromMap(StringValueMap map)
        {
            var token = map.GetAsNullableString("token");
            var take  = map.GetAsNullableInteger("take").Value;
            var total = map.GetAsBooleanWithDefault("total", false);

            return(new TokenizedPagingParams(token, take, total));
        }
示例#2
0
        /// <summary>
        /// Creates a new StringValueMap by merging two or more maps. Maps defined later in
        /// the list override values from previously defined maps.
        /// </summary>
        /// <param name="maps">an array of maps to be merged</param>
        /// <returns>a newly created StringValueMap.</returns>
        public static StringValueMap FromMaps(params IDictionary <string, string>[] maps)
        {
            var result = new StringValueMap();

            if (maps != null && maps.Length > 0)
            {
                foreach (var map in maps)
                {
                    result.Append(map);
                }
            }
            return(result);
        }
        /// <summary>
        /// Creates a new StringValueMap from a list of key-value pairs called tuples.
        /// The method is similar to <see cref="FromTuples"/> but tuples are passed as array instead of parameters.
        /// </summary>
        /// <param name="tuples">a list of values where odd elements are keys and the following even elements are values</param>
        /// <returns>a newly created StringValueMap.</returns>
        public static StringValueMap FromTuplesArray(params object[] tuples)
        {
            var result = new StringValueMap();

            if (tuples == null || tuples.Length == 0)
            {
                return(result);
            }

            for (int index = 0; index < tuples.Length; index += 2)
            {
                if (index + 1 >= tuples.Length)
                {
                    break;
                }
                var name  = StringConverter.ToString(tuples[index]);
                var value = StringConverter.ToNullableString(tuples[index + 1]);
                result[name] = value;
            }

            return(result);
        }
示例#4
0
        /// <summary>
        /// arses semicolon-separated key-value pairs and returns them as a StringValueMap.
        /// </summary>
        /// <param name="line">semicolon-separated key-value list to initialize StringValueMap.</param>
        /// <returns>a newly created StringValueMap.</returns>
        public static StringValueMap FromString(string line)
        {
            var result = new StringValueMap();

            if (string.IsNullOrWhiteSpace(line))
            {
                return(result);
            }

            var tokens = line.Split(';');

            foreach (var token in tokens)
            {
                if (token.Length == 0)
                {
                    continue;
                }
                var index = token.IndexOf("=");
                var key   = index > 0 ? token.Substring(0, index).Trim() : token.Trim();
                var value = index > 0 ? token.Substring(index + 1).Trim() : null;
                result[key] = value;
            }
            return(result);
        }
示例#5
0
        /// <summary>
        /// Creates a new StringValueMap from a list of key-value pairs called tuples.
        /// </summary>
        /// <param name="tuples">a list of values where odd elements are keys and the following
        /// even elements are values</param>
        /// <returns>a newly created StringValueArray.</returns>
        public static StringValueMap FromTuples(params object[] tuples)
        {
            var result = new StringValueMap();

            if (tuples == null || tuples.Length == 0)
            {
                return(result);
            }

            for (var i = 0; i < tuples.Length; i += 2)
            {
                if (i + 1 >= tuples.Length)
                {
                    break;
                }

                var name  = StringConverter.ToString(tuples[i]);
                var value = StringConverter.ToString(tuples[i + 1]);

                result[name] = value;
            }

            return(result);
        }
示例#6
0
        /// <summary>
        /// Parses semicolon-separated key-value pairs and returns them as a FilterParams.
        /// </summary>
        /// <param name="line">semicolon-separated key-value list to initialize FilterParams.</param>
        /// <returns>a newly created FilterParams.</returns>
        public new static FilterParams FromString(string line)
        {
            var map = StringValueMap.FromString(line);

            return(new FilterParams(map));
        }
示例#7
0
        /// <summary>
        /// Creates a new FilterParams from a list of key-value pairs called tuples.
        /// </summary>
        /// <param name="values">a list of values where odd elements are keys and the following
        /// even elements are values</param>
        /// <returns>a newly created FilterParams.</returns>
        public new static FilterParams FromTuples(params object[] values)
        {
            var map = StringValueMap.FromTuples(values);

            return(new FilterParams(map));
        }