public static string GetPrimitiveValue(IOpenApiAny value) { IOpenApiPrimitive primitive = (IOpenApiPrimitive)value; switch (primitive.PrimitiveType) { case PrimitiveType.String: OpenApiString stringValue = (OpenApiString)primitive; return(stringValue.Value); case PrimitiveType.Boolean: OpenApiBoolean booleanValue = (OpenApiBoolean)primitive; return(booleanValue.Value.ToString()); case PrimitiveType.Integer: OpenApiInteger integerValue = (OpenApiInteger)primitive; return(integerValue.Value.ToString()); case PrimitiveType.Long: OpenApiLong longValue = (OpenApiLong)primitive; return(longValue.Value.ToString()); case PrimitiveType.Float: OpenApiFloat floatValue = (OpenApiFloat)primitive; return(floatValue.Value.ToString(CultureInfo.InvariantCulture)); case PrimitiveType.Double: OpenApiDouble doubleValue = (OpenApiDouble)primitive; return(doubleValue.Value.ToString(CultureInfo.InvariantCulture)); case PrimitiveType.Byte: OpenApiByte byteValue = (OpenApiByte)primitive; return(Encoding.Default.GetString(byteValue.Value)); case PrimitiveType.Binary: OpenApiBinary binaryValue = (OpenApiBinary)primitive; StringBuilder builder = new StringBuilder(); foreach (byte byteVal in binaryValue.Value) { builder.Append(Convert.ToString(byteVal, 2).PadLeft(8, '0')); } return(builder.ToString()); case PrimitiveType.Date: OpenApiDate dateValue = (OpenApiDate)primitive; return(dateValue.Value.ToString(CultureInfo.InvariantCulture)); case PrimitiveType.DateTime: OpenApiDateTime dateTimeValue = (OpenApiDateTime)primitive; return(dateTimeValue.Value.ToString(CultureInfo.InvariantCulture)); case PrimitiveType.Password: OpenApiPassword passwordValue = (OpenApiPassword)primitive; return(passwordValue.Value); default: throw new NotImplementedException("This data example type is not supported yet!"); } }
private static IOpenApiPrimitive GetStructValue(Type type, object value) { var openValue = default(IOpenApiPrimitive); if (type == typeof(DateTime?) && ((DateTime?)value).HasValue) { openValue = new OpenApiDate(((DateTime?)value).Value.ToUniversalTime()); } else if (type == typeof(DateTime) && ((DateTime)value) != default(DateTime)) { openValue = new OpenApiDate(((DateTime)value).ToUniversalTime()); } else if (type == typeof(string)) { openValue = new OpenApiString((string)value); } else if (type == typeof(int) || type == typeof(int?)) { openValue = new OpenApiInteger((int)value); } else if (type == typeof(short) || type == typeof(short?)) { openValue = new OpenApiInteger((short)value); } else if (type == typeof(long) || type == typeof(long?)) { openValue = new OpenApiLong((long)value); } else if (type == typeof(float) || type == typeof(float?)) { openValue = new OpenApiFloat((float)value); } else if (type == typeof(decimal) || type == typeof(decimal?)) { openValue = new OpenApiDouble((double)(decimal)value); } else if (type == typeof(double) || type == typeof(double?)) { openValue = new OpenApiDouble((double)value); } else if (type == typeof(bool) || type == typeof(bool?)) { openValue = new OpenApiBoolean((bool)value); } else if (type == typeof(Guid) || type == typeof(Guid?)) { openValue = new OpenApiString($"{value}"); } else if (type == typeof(byte) || type == typeof(byte?)) { openValue = new OpenApiByte((byte)value); } else if ( #if NETSTANDARD14 type.GetTypeInfo().IsEnum || Nullable.GetUnderlyingType(type)?.GetTypeInfo().IsEnum == true) { #else type.IsEnum || Nullable.GetUnderlyingType(type)?.IsEnum == true) { #endif openValue = new OpenApiString($"{value}"); } else if (type.IsValueType && !type.IsPrimitive && !type.Namespace.StartsWith("System") && !type.IsEnum) { openValue = new OpenApiString($"{value}"); } return(openValue); }
public QueryStringParameterAttribute(string name, string description, byte example) { Initialise(name, description); DataType = typeof(byte); Example = new OpenApiByte(example); }