/// <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"); }
/// <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); }