Example #1
0
        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!");
            }
        }
        public static string GetValueString(this IOpenApiPrimitive primitive)
        {
            using var sb = new StringWriter();
            var writer = new OpenApiYamlWriter(sb);

            primitive.Write(writer, OpenApiSpecVersion.OpenApi3_0);
            return(sb.ToString());
        }
        private static void WritePrimitive(this IOpenApiWriter writer, IOpenApiPrimitive primitive)
        {
            if (writer == null)
            {
                throw Error.ArgumentNull(nameof(writer));
            }

            if (primitive == null)
            {
                throw Error.ArgumentNull(nameof(primitive));
            }

            // The Spec version is meaning for the Any type, so it's ok to use the latest one.
            primitive.Write(writer, OpenApiSpecVersion.OpenApi3_0);
        }
 private static object GetOpenApiPrimitiveValue(IOpenApiPrimitive primitive)
 {
     return(primitive.GetType().GetProperty("Value").GetValue(primitive));
 }
Example #5
0
        private static void WritePrimitive(this IOpenApiWriter writer, IOpenApiPrimitive primitive)
        {
            if (writer == null)
            {
                throw Error.ArgumentNull(nameof(writer));
            }

            if (primitive == null)
            {
                throw Error.ArgumentNull(nameof(primitive));
            }

            switch (primitive.PrimitiveType)
            {
            case PrimitiveType.Integer:
                var intValue = (OpenApiInteger)primitive;
                writer.WriteValue(intValue.Value);
                break;

            case PrimitiveType.Long:
                var longValue = (OpenApiLong)primitive;
                writer.WriteValue(longValue.Value);
                break;

            case PrimitiveType.Float:
                var floatValue = (OpenApiFloat)primitive;
                writer.WriteValue(floatValue.Value);
                break;

            case PrimitiveType.Double:
                var doubleValue = (OpenApiDouble)primitive;
                writer.WriteValue(doubleValue.Value);
                break;

            case PrimitiveType.String:
                var stringValue = (OpenApiString)primitive;
                writer.WriteValue(stringValue.Value);
                break;

            case PrimitiveType.Byte:
                var byteValue = (OpenApiByte)primitive;
                writer.WriteValue(byteValue.Value);
                break;

            case PrimitiveType.Binary:
                var binaryValue = (OpenApiBinary)primitive;
                if (binaryValue == null)
                {
                    writer.WriteNull();
                }
                else
                {
                    writer.WriteValue(Convert.ToBase64String(binaryValue.Value));
                }
                break;

            case PrimitiveType.Boolean:
                var boolValue = (OpenApiBoolean)primitive;
                writer.WriteValue(boolValue.Value);
                break;

            case PrimitiveType.Date:
                var dateValue = (OpenApiDate)primitive;
                writer.WriteValue(dateValue.Value);
                break;

            case PrimitiveType.DateTime:
                var dateTimeValue = (OpenApiDateTime)primitive;
                writer.WriteValue(dateTimeValue.Value);
                break;

            case PrimitiveType.Password:
                var passwordValue = (OpenApiPassword)primitive;
                writer.WriteValue(passwordValue.Value);
                break;

            default:
                throw new OpenApiWriterException(
                          string.Format(
                              SRResource.PrimitiveTypeNotSupported,
                              primitive.PrimitiveType));
            }
        }