protected virtual TemplateCodeGenerationMetadata CreateTemplate(ITypeNameGenerator nameGenerator, ITemplatePredicate predicate, TemplateInfo template) { var fullName = nameGenerator.GetFullTypeName(template.Path); var fields = CreateTemplateFields(template, nameGenerator); return(new TemplateCodeGenerationMetadata(template, fullName, predicate.GetRootNamespace(template), fields)); }
/// <summary>Initializes a new instance of the <see cref="SwaggerSchemaResolver" /> class.</summary> /// <param name="document">The Swagger document.</param> /// <param name="settings">The settings.</param> /// <exception cref="ArgumentNullException"><paramref name="document" /> is <see langword="null" /></exception> public SwaggerSchemaResolver(SwaggerDocument document, JsonSchemaGeneratorSettings settings) : base(settings) { if (document == null) throw new ArgumentNullException(nameof(document)); _document = document; _typeNameGenerator = settings.TypeNameGenerator; }
/// <summary>Gets the type name of the schema.</summary> /// <param name="typeNameGenerator">The type name generator.</param> /// <returns>The type name.</returns> public string GetTypeName(ITypeNameGenerator typeNameGenerator) { if (typeNameGenerator != null) { return(typeNameGenerator.Generate(this)); } return(TypeNameRaw); }
/// <summary>Gets the type name of the schema.</summary> /// <param name="typeNameGenerator">The type name generator.</param> /// <returns>The type name.</returns> public string GetTypeName(ITypeNameGenerator typeNameGenerator) { if (typeNameGenerator != null) { return(typeNameGenerator.Generate(this)?.Split('.').Last()); } return(TypeNameRaw?.Split('.').Last()); }
/// <summary>Initializes a new instance of the <see cref="SwaggerSchemaResolver" /> class.</summary> /// <param name="document">The Swagger document.</param> /// <param name="settings">The settings.</param> /// <exception cref="ArgumentNullException"><paramref name="document" /> is <see langword="null" /></exception> public SwaggerSchemaResolver(SwaggerDocument document, JsonSchemaGeneratorSettings settings) : base(document, settings) { if (document == null) { throw new ArgumentNullException(nameof(document)); } _typeNameGenerator = settings.TypeNameGenerator; }
/// <summary>Initializes a new instance of the <see cref="OpenApiDocumentSchemaResolver" /> class.</summary> /// <param name="document">The Open API document.</param> /// <param name="settings">The settings.</param> public OpenApiDocumentSchemaResolver(OpenApiDocument document, JsonSchemaGeneratorSettings settings) : base(document, settings) { if (document == null) { throw new ArgumentNullException(nameof(document)); } this._typeNameGenerator = settings.TypeNameGenerator; }
/// <summary>Serializes the <see cref="JsonSchema4" /> to a JSON string.</summary> /// <param name="typeNameGenerator">The type name generator.</param> /// <returns>The JSON string.</returns> public string ToJson(ITypeNameGenerator typeNameGenerator) { var oldSchema = SchemaVersion; SchemaVersion = "http://json-schema.org/draft-04/schema#"; JsonSchemaReferenceUtilities.UpdateSchemaReferencePaths(this, new JsonSchemaDefinitionAppender(this, typeNameGenerator)); var data = JsonConvert.SerializeObject(this, Formatting.Indented); JsonSchemaReferenceUtilities.UpdateSchemaReferences(this, new JsonReferenceResolver()); SchemaVersion = oldSchema; return(JsonSchemaReferenceUtilities.ConvertPropertyReferences(data)); }
/// <summary>Converts the description object to JSON.</summary> /// <param name="typeNameGenerator">The type name generator.</param> /// <returns>The JSON string.</returns> public string ToJson(ITypeNameGenerator typeNameGenerator) { var settings = new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.None, Formatting = Formatting.Indented }; GenerateOperationIds(); JsonSchemaReferenceUtilities.UpdateSchemaReferencePaths(this, new SwaggerDocumentSchemaDefinitionAppender(this, typeNameGenerator)); var data = JsonConvert.SerializeObject(this, settings); JsonSchemaReferenceUtilities.UpdateSchemaReferences(this); return(JsonSchemaReferenceUtilities.ConvertPropertyReferences(data)); }
/// <summary>Initializes a new instance of the <see cref="JsonSchemaDefinitionAppender" /> class.</summary> /// <param name="rootObject">The root object.</param> /// <param name="typeNameGenerator">The type name generator.</param> public JsonSchemaDefinitionAppender(object rootObject, ITypeNameGenerator typeNameGenerator) { RootObject = rootObject; _typeNameGenerator = typeNameGenerator; }
/// <summary>Creates the factory to be used in the FromJsonAsync method.</summary> /// <param name="typeNameGenerator">The type name generator.</param> /// <returns>The factory.</returns> public static Func <JsonSchema, JsonReferenceResolver> CreateJsonReferenceResolverFactory(ITypeNameGenerator typeNameGenerator) { JsonReferenceResolver ReferenceResolverFactory(JsonSchema schema) => new JsonReferenceResolver(new JsonSchemaAppender(schema, typeNameGenerator)); return(ReferenceResolverFactory); }
/// <summary>Initializes a new instance of the <see cref="JsonSchemaDefinitionAppender"/> class.</summary> public JsonSchemaDefinitionAppender(ITypeNameGenerator typeNameGenerator) { _typeNameGenerator = typeNameGenerator; }
/// <summary>Initializes a new instance of the <see cref="TypeResolverBase{TGenerator}"/> class.</summary> /// <param name="typeNameGenerator">The type name generator.</param> protected TypeResolverBase(ITypeNameGenerator typeNameGenerator) { _typeNameGenerator = typeNameGenerator; }
/// <summary>Initializes a new instance of the <see cref="SwaggerDocumentSchemaDefinitionAppender" /> class.</summary> /// <param name="document">The Swagger document.</param> /// <param name="typeNameGenerator">The type name generator.</param> public SwaggerDocumentSchemaDefinitionAppender(SwaggerDocument document, ITypeNameGenerator typeNameGenerator) { _document = document; _typeNameGenerator = typeNameGenerator; }
protected virtual IEnumerable <TemplateFieldCodeGenerationMetadata> CreateTemplateFields(TemplateInfo template, ITypeNameGenerator nameGenerator) { var fields = new List <TemplateFieldCodeGenerationMetadata>(template.OwnFields.Length); foreach (var field in template.OwnFields) { var currentField = new TemplateFieldCodeGenerationMetadata(field, nameGenerator.ConvertToIdentifier(field.Name)); fields.Add(currentField); } fields.Sort((a, b) => string.Compare(a.CodeName, b.CodeName, StringComparison.Ordinal)); return(fields); }
/// <summary>Gets the type name of the schema.</summary> /// <param name="typeNameGenerator">The type name generator.</param> /// <param name="typeNameHint">The type name hint.</param> /// <returns>The type name.</returns> public string GetTypeName(ITypeNameGenerator typeNameGenerator, string typeNameHint) { return(typeNameGenerator.Generate(this, typeNameHint)); }
/// <summary>Gets the type name of the schema.</summary> /// <param name="typeNameGenerator">The type name generator.</param> /// <returns>The type name.</returns> public string GetTypeName(ITypeNameGenerator typeNameGenerator) { if (typeNameGenerator != null) return typeNameGenerator.Generate(this); return TypeNameRaw; }
/// <summary>Initializes a new instance of the <see cref="SwaggerServiceSchemaDefinitionAppender" /> class.</summary> /// <param name="service">The service.</param> /// <param name="typeNameGenerator">The type name generator.</param> public SwaggerServiceSchemaDefinitionAppender(SwaggerService service, ITypeNameGenerator typeNameGenerator) { _service = service; _typeNameGenerator = typeNameGenerator; }