Example #1
0
        /// <summary>
        /// Parses the specified type to the Swagger data type.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <returns>The equivalent Swagger date type.</returns>
        public static string Parse(string type)
        {
            var result = type;

            if (type.Equals("IEnumerable"))
            {
                result = "List";
            }
            else if (type.StartsWith("IEnumerable<"))
            {
                result = type.Replace("IEnumerable<", "List[").Replace(">", "]");
            }
            else if (type.StartsWith("List<"))
            {
                result = type.Replace("List<", "List[").Replace(">", "]");
            }
            else if (type.StartsWith("IList<"))
            {
                result = type.Replace("IList<", "List[").Replace(">", "]");
            }
            else
            {
                result = SwaggerContractResolver.ToCamelCase(type);
            }

            return(result);
        }
        public virtual string GetResponseClass(HttpActionDescriptor actionDescriptor)
        {
            var reflectedActionDescriptor = actionDescriptor as ReflectedHttpActionDescriptor;

            if (reflectedActionDescriptor != null)
            {
                if (reflectedActionDescriptor.MethodInfo.ReturnType.IsGenericType)
                {
                    StringBuilder sb = new StringBuilder(reflectedActionDescriptor.MethodInfo.ReturnParameter.ParameterType.Name);
                    sb.Append("<");
                    Type[] types = reflectedActionDescriptor.MethodInfo.ReturnParameter.ParameterType.GetGenericArguments();
                    for (int i = 0; i < types.Length; i++)
                    {
                        sb.Append(SwaggerContractResolver.ToCamelCase(types[i].Name));
                        if (i != (types.Length - 1))
                        {
                            sb.Append(", ");
                        }
                    }
                    sb.Append(">");
                    return(sb.Replace("`1", "").ToString());
                }
                else
                {
                    return(SwaggerContractResolver.ToCamelCase(reflectedActionDescriptor.MethodInfo.ReturnType.Name));
                }
            }

            return("void");
        }
Example #3
0
        /// <summary>
        /// Parses the specified type to the Swagger data type.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <returns>The equivalent Swagger date type.</returns>
        public static string Parse(Type type)
        {
            var result = type.Name;

            if (s_typesMapping.ContainsKey(type))
            {
                result = s_typesMapping[type];
            }
            else if (type.IsGenericType && type.GetInterface("IEnumerable") != null)
            {
                result = String.Format(CultureInfo.InvariantCulture, "List[{0}]", SwaggerContractResolver.ToCamelCase(type.GetGenericArguments().First().Name));
            }
            else if (result.EndsWith("[]", StringComparison.OrdinalIgnoreCase))
            {
                result = String.Format(CultureInfo.InvariantCulture, "List[{0}]", SwaggerContractResolver.ToCamelCase(result.Replace("[]", "")));
            }
            else
            {
                result = SwaggerContractResolver.ToCamelCase(result);
            }

            return(result);
        }