protected override OpenApiSchema GenerateSchemaFor(Type type, SchemaRepository schemaRepository) { if (!schemaRepository.TryGetIdFor(type, out string schemaId)) { schemaId = Options.SchemaIdSelector(type); schemaRepository.ReserveIdFor(type, schemaId); schemaRepository.AddSchemaFor(type, Next.GenerateSchema(type, schemaRepository)); } return(new OpenApiSchema { Reference = new OpenApiReference { Id = schemaId, Type = ReferenceType.Schema } }); }
protected override OpenApiSchema GenerateSchemaFor(Type type, SchemaRepository schemaRepository) { if (!schemaRepository.TryGetIdFor(type, out string schemaId)) { schemaId = Options.SchemaIdSelector(type); schemaRepository.ReserveIdFor(type, schemaId); if (type == typeof(DataTable)) { schemaRepository.AddSchemaFor(type, CreateDataTableSchema(schemaRepository)); } else if (type == typeof(Exception)) { schemaRepository.AddSchemaFor(type, CreateExceptionSchema(schemaRepository)); } } return(new OpenApiSchema { Reference = new OpenApiReference { Id = schemaId, Type = ReferenceType.Schema } }); }