/// <summary>
        /// Initializes a new instance of the <see cref="OpenApiWriterBase"/> class.
        /// </summary>
        /// <param name="textWriter">The text writer.</param>
        /// <param name="settings">The writer settings.</param>
        public OpenApiWriterBase(TextWriter textWriter, OpenApiWriterSettings settings)
        {
            Writer         = textWriter;
            Writer.NewLine = "\n";

            this.scopes   = new Stack <Scope>();
            this.settings = settings;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="EdmNavigationSourceGenerator" /> class.
 /// </summary>
 /// <param name="model">The Edm model.</param>
 /// <param name="settings">The Open Api writer settings.</param>
 public EdmNavigationSourceGenerator(IEdmModel model, OpenApiWriterSettings settings)
     : base(model, settings)
 {
     _boundOperations = new Dictionary <IEdmTypeReference, IEdmOperation>();
     foreach (var edmOperation in model.SchemaElements.OfType <IEdmOperation>().Where(e => e.IsBound))
     {
         IEdmOperationParameter bindingParameter = edmOperation.Parameters.First();
         _boundOperations.Add(bindingParameter.Type, edmOperation);
     }
 }
Пример #3
0
        /// <summary>
        /// Outputs an Open API artifact to the provided Open Api writer.
        /// </summary>
        /// <param name="model">Model to be written.</param>
        /// <param name="writer">The generated Open API writer <see cref="IOpenApiWriter"/>.</param>
        /// <param name="settings">Settings for the generated Open API.</param>
        public static void WriteOpenApi(this IEdmModel model, IOpenApiWriter writer, OpenApiWriterSettings settings = null)
        {
            if (model == null)
            {
                throw Error.ArgumentNull("model");
            }

            if (writer == null)
            {
                throw Error.ArgumentNull("writer");
            }

            if (settings == null)
            {
                settings = new OpenApiWriterSettings();
            }

            EdmOpenApiDocumentGenerator converter = new EdmOpenApiDocumentGenerator(model, settings);
            OpenApiDocument             doc       = converter.Generate();

            doc.Write(writer);
        }
Пример #4
0
 public static OpenApiDocument ConvertTo(this IEdmModel model, OpenApiWriterSettings settings)
 {
     return(new EdmOpenApiDocumentGenerator(model, settings).Generate());
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="EdmOpenApiPathsGenerator" /> class.
 /// </summary>
 /// <param name="model">The Edm model.</param>
 /// <param name="settings">The Open Api writer settings.</param>
 public EdmOpenApiPathsGenerator(IEdmModel model, OpenApiWriterSettings settings)
     : base(model, settings)
 {
     _nsGenerator = new EdmNavigationSourceGenerator(model, settings);
 }
Пример #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="OpenApiYamlWriter"/> class.
 /// </summary>
 /// <param name="textWriter">The text writer.</param>
 /// <param name="settings">The writer settings.</param>
 public OpenApiYamlWriter(TextWriter textWriter, OpenApiWriterSettings settings)
     : base(textWriter, settings)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="EdmOpenApiDocumentGenerator" /> class.
 /// </summary>
 /// <param name="model">The Edm model.</param>
 /// <param name="settings">The Open Api writer settings.</param>
 public EdmOpenApiDocumentGenerator(IEdmModel model, OpenApiWriterSettings settings)
     : base(model, settings)
 {
     _componentsGenerator = new EdmOpenApiComponentsGenerator(model, settings);
     _pathsGenerator      = new EdmOpenApiPathsGenerator(model, settings);
 }
Пример #8
0
        /// <summary>
        /// Outputs Edm model to an Open API artifact to the give text writer.
        /// </summary>
        /// <param name="model">Edm model to be written.</param>
        /// <param name="writer">The output text writer.</param>
        /// <param name="target">The Open API target.</param>
        /// <param name="settings">Settings for the generated Open API.</param>
        public static void WriteOpenApi(this IEdmModel model, TextWriter writer, OpenApiTarget target, OpenApiWriterSettings settings = null)
        {
            if (model == null)
            {
                throw Error.ArgumentNull(nameof(model));
            }

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

            IOpenApiWriter openApiWriter = BuildWriter(writer, target);

            model.WriteOpenApi(openApiWriter, settings);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="EdmOpenApiComponentsGenerator" /> class.
 /// </summary>
 /// <param name="model">The Edm model.</param>
 /// <param name="settings">The Open Api writer settings.</param>
 public EdmOpenApiComponentsGenerator(IEdmModel model, OpenApiWriterSettings settings)
     : base(model, settings)
 {
 }
Пример #10
0