diff --git a/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiEdmTypeSchemaGenerator.cs b/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiEdmTypeSchemaGenerator.cs index 50b7b105..fc1e4e68 100644 --- a/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiEdmTypeSchemaGenerator.cs +++ b/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiEdmTypeSchemaGenerator.cs @@ -150,7 +150,7 @@ public static IOpenApiSchema CreateSchema(this ODataContext context, IEdmPrimiti // Nullable properties are marked with the keyword nullable and a value of true. // nullable cannot be true when type is empty, often common in anyof/allOf since individual entries are nullable - if (!string.IsNullOrEmpty(schema.Type.ToIdentifier()) && primitiveType.IsNullable) + if (schema.Type.ToIdentifiers() is { Length: > 0 } && primitiveType.IsNullable) { openApiSchema.Type |= JsonSchemaType.Null; } diff --git a/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiSchemaGenerator.cs b/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiSchemaGenerator.cs index e84a7e91..91648b01 100644 --- a/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiSchemaGenerator.cs +++ b/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiSchemaGenerator.cs @@ -659,7 +659,7 @@ private static JsonNode GetTypeNameForPrimitive(ODataContext context, IEdmTypeRe } else { - return schema.Type.ToIdentifier() ?? + return (schema.Type & ~JsonSchemaType.Null)?.ToIdentifiers()[0] ?? (schema.AnyOf ?? Enumerable.Empty()) .Union(schema.AllOf ?? Enumerable.Empty()) .Union(schema.OneOf ?? Enumerable.Empty()) diff --git a/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj b/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj index 5edc3210..cc8404e2 100644 --- a/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj +++ b/src/Microsoft.OpenApi.OData.Reader/Microsoft.OpenAPI.OData.Reader.csproj @@ -29,7 +29,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/OoasGui/OoasGui.csproj b/src/OoasGui/OoasGui.csproj index fd53c2ee..7a89a874 100644 --- a/src/OoasGui/OoasGui.csproj +++ b/src/OoasGui/OoasGui.csproj @@ -1,4 +1,4 @@ - + net8.0-windows WinExe @@ -17,7 +17,7 @@ - + diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Generator/OpenApiSchemaGeneratorTests.cs b/test/Microsoft.OpenAPI.OData.Reader.Tests/Generator/OpenApiSchemaGeneratorTests.cs index 2eb0de21..23d8ceda 100644 --- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Generator/OpenApiSchemaGeneratorTests.cs +++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Generator/OpenApiSchemaGeneratorTests.cs @@ -512,7 +512,7 @@ public async Task CreateComplexTypeWithBaseSchemaReturnCorrectSchema() // Assert Assert.NotNull(schema); - Assert.True(String.IsNullOrEmpty(schema.Type.ToIdentifier())); + Assert.Null(schema.Type.ToIdentifiers()); Assert.NotNull(schema.AllOf); Assert.Null(schema.AnyOf); @@ -660,7 +660,7 @@ public async Task CreateEntityTypeWithBaseSchemaReturnCorrectSchema() // Assert Assert.NotNull(schema); - Assert.True(String.IsNullOrEmpty(schema.Type.ToIdentifier())); + Assert.Null(schema.Type.ToIdentifiers()); Assert.NotNull(schema.AllOf); Assert.Null(schema.AnyOf); @@ -735,7 +735,7 @@ public void CreateEntityTypeWithCrossReferenceBaseSchemaReturnCorrectSchema() // Assert Assert.NotNull(schema); - Assert.True(string.IsNullOrEmpty(schema.Type.ToIdentifier())); + Assert.Null(schema.Type.ToIdentifiers()); Assert.NotNull(schema.AllOf); Assert.Null(schema.AnyOf); diff --git a/test/Microsoft.OpenAPI.OData.Reader.Tests/Microsoft.OpenAPI.OData.Reader.Tests.csproj b/test/Microsoft.OpenAPI.OData.Reader.Tests/Microsoft.OpenAPI.OData.Reader.Tests.csproj index a647ca64..a98f2155 100644 --- a/test/Microsoft.OpenAPI.OData.Reader.Tests/Microsoft.OpenAPI.OData.Reader.Tests.csproj +++ b/test/Microsoft.OpenAPI.OData.Reader.Tests/Microsoft.OpenAPI.OData.Reader.Tests.csproj @@ -88,7 +88,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + diff --git a/tool/UpdateDocs/UpdateDocs.csproj b/tool/UpdateDocs/UpdateDocs.csproj index 1ed1651a..fbf2d587 100644 --- a/tool/UpdateDocs/UpdateDocs.csproj +++ b/tool/UpdateDocs/UpdateDocs.csproj @@ -13,6 +13,6 @@ - + \ No newline at end of file