/// <summary> /// Write Any object to the given writer. /// </summary> /// <param name="writer">The writer.</param> public void Write(IOpenApiWriter writer) { if (writer == null) { throw Error.ArgumentNull("writer"); } // { for json, empty for YAML writer.WriteStartObject(); foreach (var item in this) { writer.WritePropertyName(item.Key); IOpenApiWritable writerElement = item.Value as IOpenApiWritable; if (writerElement != null) { writerElement.Write(writer); } else { writer.WriteValue(item.Value); } } // } for json, empty for YAML writer.WriteEndObject(); }
private static void WriteValueInternal <T>(this IOpenApiWriter writer, T value) { IOpenApiWritable writableElement = value as IOpenApiWritable; if (writableElement != null) { writableElement.Write(writer); } else { writer.WriteValue(value); } }
internal static string WriteToYaml(this IOpenApiWritable element, Action <IOpenApiWriter, IOpenApiWritable> before = null, Action <IOpenApiWriter, IOpenApiWritable> after = null) { Action <IOpenApiWriter> action = writer => { before?.Invoke(writer, element); element?.Write(writer); after?.Invoke(writer, element); writer?.Flush(); }; return(Write(OpenApiTarget.Yaml, action)); }
/// <summary> /// Write the single of Open API element if the element is not null, otherwise skip it. /// </summary> /// <param name="writer">The Open API writer.</param> /// <param name="name">The property name.</param> /// <param name="element">The Open API element.</param> public static void WriteOptionalObject(this IOpenApiWriter writer, string name, IOpenApiWritable element) { if (element == null) { return; } writer.WritePropertyInternal(name, element); }
/// <summary> /// Write the single of Open API element. /// </summary> /// <param name="writer">The Open API writer.</param> /// <param name="name">The property name.</param> /// <param name="value">The Open API element.</param> public static void WriteRequiredObject(this IOpenApiWriter writer, string name, IOpenApiWritable value) { writer.WritePropertyInternal(name, value); }