Exemplo n.º 1
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) });
                }
            }
Exemplo n.º 2
0
            private static IEnumerable <KeyValuePair <string, string> > ParseDictionary(object parameterValue, Type keyType, Type valueType)
            {
                if (parameterValue == null)
                {
                    return(new KeyValuePair <string, string>[] { });
                }

                if (keyType == typeof(string))
                {
                    if (valueType == typeof(int))
                    {
                        return(ParametersParser.ParseDictionary <string, int>(parameterValue));
                    }
                    else if (valueType == typeof(long))
                    {
                        return(ParametersParser.ParseDictionary <string, long>(parameterValue));
                    }
                    else if (valueType == typeof(double))
                    {
                        return(ParametersParser.ParseDictionary <string, double>(parameterValue));
                    }
                    else if (valueType == typeof(float))
                    {
                        return(ParametersParser.ParseDictionary <string, float>(parameterValue));
                    }
                    else if (valueType == typeof(string))
                    {
                        return(ParametersParser.ParseDictionary <string, string>(parameterValue));
                    }
                    else if (valueType == typeof(object))
                    {
                        return(ParametersParser.ParseDictionary <string, object>(parameterValue));
                    }
                }
                else if (keyType == typeof(object))
                {
                    if (valueType == typeof(int))
                    {
                        return(ParametersParser.ParseDictionary <object, int>(parameterValue));
                    }
                    else if (valueType == typeof(long))
                    {
                        return(ParametersParser.ParseDictionary <object, long>(parameterValue));
                    }
                    else if (valueType == typeof(double))
                    {
                        return(ParametersParser.ParseDictionary <object, double>(parameterValue));
                    }
                    else if (valueType == typeof(float))
                    {
                        return(ParametersParser.ParseDictionary <object, float>(parameterValue));
                    }
                    else if (valueType == typeof(string))
                    {
                        return(ParametersParser.ParseDictionary <object, string>(parameterValue));
                    }
                    else if (valueType == typeof(object))
                    {
                        return(ParametersParser.ParseDictionary <object, object>(parameterValue));
                    }
                }

                return(new KeyValuePair <string, string>[] { });
            }