Ejemplo n.º 1
0
            private static IEnumerable <KeyValuePair <string, string> > ParseArray(object parameterValue, Type type)
            {
                if (parameterValue == null)
                {
                    return(new KeyValuePair <string, string>[] { });
                }

                if (type == typeof(int))
                {
                    return(ParametersParser.ParseArray <int>(parameterValue));
                }
                else if (type == typeof(long))
                {
                    return(ParametersParser.ParseArray <long>(parameterValue));
                }
                else if (type == typeof(double))
                {
                    return(ParametersParser.ParseArray <double>(parameterValue));
                }
                else if (type == typeof(float))
                {
                    return(ParametersParser.ParseArray <float>(parameterValue));
                }
                else if (type == typeof(string))
                {
                    return(ParametersParser.ParseArray <string>(parameterValue));
                }
                else if (type == typeof(object))
                {
                    return(ParametersParser.ParseArray <object>(parameterValue));
                }

                return(new KeyValuePair <string, string>[] { });
            }
Ejemplo n.º 2
0
            private static IEnumerable <KeyValuePair <string, string> > ParseValue(object parameterValue)
            {
                if (parameterValue == null)
                {
                    return(new KeyValuePair <string, string>[] { });
                }

                var parameterType    = parameterValue.GetType();
                var genericArguments = parameterType.GenericTypeArguments;

                if (genericArguments.Count() == 2)
                {
                    var keyType   = genericArguments[0];
                    var valueType = genericArguments[1];
                    return(ParametersParser.ParseDictionary(parameterValue, keyType, valueType));
                }
                else if (parameterValue is HTTP.Dictionary)
                {
                    return(ParametersParser.ParseDictionary <object, object>(parameterValue));
                }
                else if (genericArguments.Count() == 1 ||
                         parameterType.IsArray)
                {
                    var arrayType = genericArguments.Count() > 0
                                                ? genericArguments[0]
                                                : parameterType.GetElementType();

                    return(ParametersParser.ParseArray(parameterValue, arrayType));
                }
                else if (parameterValue is HTTP.Array)
                {
                    return(ParametersParser.ParseArray <object>(parameterValue));
                }
                else
                {
                    var resultParameterName  = string.Empty;
                    var resultParameterValue = parameterValue.ToString();
                    return(new[] { new KeyValuePair <string, string>(resultParameterName, resultParameterValue) });
                }
            }