From bfbdc3c2700c9b17186eb752f8147bd8f03933ff Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Tue, 16 Jun 2020 23:13:39 +0300 Subject: [PATCH 01/29] Autogenerated vocabulary builders in progress. --- .../NavigationSourceConfiguration.cs | 7 +- .../Microsoft.OData.ModelBuilder.csproj | 24 + .../V1/AcceptableEncodingsBuilder.cs | 32 ++ ...AnnotationValuesInQuerySupportedBuilder.cs | 32 ++ .../AsynchronousRequestsSupportedBuilder.cs | 32 ++ .../BatchContinueOnErrorSupportedBuilder.cs | 32 ++ .../Capabilities/V1/BatchSupportBuilder.cs | 32 ++ .../Capabilities/V1/BatchSupportedBuilder.cs | 32 ++ .../V1/CallbackSupportedBuilder.cs | 32 ++ .../Capabilities/V1/ChangeTrackingBuilder.cs | 32 ++ .../CollectionPropertyRestrictionsBuilder.cs | 32 ++ .../V1/ComputeSupportedBuilder.cs | 32 ++ .../V1/ConformanceLevelBuilder.cs | 32 ++ .../V1/CountRestrictionsBuilder.cs | 32 ++ .../V1/CrossJoinSupportedBuilder.cs | 32 ++ .../Capabilities/V1/CustomHeadersBuilder.cs | 32 ++ .../V1/CustomQueryOptionsBuilder.cs | 32 ++ .../V1/DeepInsertSupportBuilder.cs | 32 ++ .../V1/DeepUpdateSupportBuilder.cs | 32 ++ .../V1/DeleteRestrictionsBuilder.cs | 32 ++ .../V1/ExpandRestrictionsBuilder.cs | 32 ++ .../Capabilities/V1/FilterFunctionsBuilder.cs | 32 ++ .../V1/FilterRestrictionsBuilder.cs | 32 ++ .../Capabilities/V1/IndexableByKeyBuilder.cs | 32 ++ .../V1/InsertRestrictionsBuilder.cs | 32 ++ .../V1/IsolationSupportedBuilder.cs | 32 ++ .../V1/KeyAsSegmentSupportedBuilder.cs | 32 ++ .../V1/MediaLocationUpdateSupportedBuilder.cs | 32 ++ .../V1/ModificationQueryOptionsBuilder.cs | 32 ++ .../V1/NavigationRestrictionsBuilder.cs | 32 ++ .../V1/OperationRestrictionsBuilder.cs | 32 ++ .../V1/QuerySegmentSupportedBuilder.cs | 32 ++ .../V1/ReadRestrictionsBuilder.cs | 32 ++ .../V1/SearchRestrictionsBuilder.cs | 32 ++ .../Capabilities/V1/SelectSupportBuilder.cs | 32 ++ .../Capabilities/V1/SkipSupportedBuilder.cs | 32 ++ .../V1/SortRestrictionsBuilder.cs | 32 ++ .../V1/SupportedFormatsBuilder.cs | 32 ++ .../V1/SupportedMetadataFormatsBuilder.cs | 32 ++ .../Capabilities/V1/TopSupportedBuilder.cs | 32 ++ .../V1/UpdateRestrictionsBuilder.cs | 32 ++ .../Vocabulary/VocabularyBuilder.cs | 458 ++++++++++++++++++ .../Vocabulary/VocabularyBuilder.tt | 278 +++++++++++ 43 files changed, 2014 insertions(+), 1 deletion(-) create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.tt diff --git a/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs index cf43ff8..fe02d62 100644 --- a/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs @@ -17,11 +17,11 @@ public abstract class NavigationSourceConfiguration { private string _url; private readonly ODataModelBuilder _modelBuilder; - private readonly Dictionary> _navigationPropertyBindings = new Dictionary>(); + /// /// Initializes a new instance of the class. /// The default constructor is intended for use by unit testing only. @@ -96,6 +96,11 @@ public IEnumerable Bindings /// public string Name { get; private set; } + /// + /// Vocabulary builders to annotate this + /// + public Dictionary VocabularyBuilders { get; } = new Dictionary(); + /// /// Gets the navigation source URL. /// diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj index 772a53b..eaab5a2 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj @@ -16,6 +16,14 @@ + + + + True + True + VocabularyBuilder.tt + + @@ -33,6 +41,11 @@ True SRResources.resx + + True + True + VocabularyBuilder.tt + @@ -41,5 +54,16 @@ SRResources.Designer.cs + + + + TextTemplatingFileGenerator + VocabularyBuilder.cs + + + + + + diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsBuilder.cs new file mode 100644 index 0000000..1421dba --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// List of acceptable compression methods for ($batch) requests, e.g. gzip + /// + public partial class AcceptableEncodingsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public AcceptableEncodingsBuilder() + : base("Org.OData.Capabilities.V1.AcceptableEncodings") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedBuilder.cs new file mode 100644 index 0000000..21b864f --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports annotation values within system query options + /// + public partial class AnnotationValuesInQuerySupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public AnnotationValuesInQuerySupportedBuilder() + : base("Org.OData.Capabilities.V1.AnnotationValuesInQuerySupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedBuilder.cs new file mode 100644 index 0000000..a4f6d10 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Service supports the asynchronous request preference + /// + public partial class AsynchronousRequestsSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public AsynchronousRequestsSupportedBuilder() + : base("Org.OData.Capabilities.V1.AsynchronousRequestsSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedBuilder.cs new file mode 100644 index 0000000..9e0ddde --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. + /// + public partial class BatchContinueOnErrorSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public BatchContinueOnErrorSupportedBuilder() + : base("Org.OData.Capabilities.V1.BatchContinueOnErrorSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportBuilder.cs new file mode 100644 index 0000000..2d46aa7 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Batch Support for the service + /// + public partial class BatchSupportBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public BatchSupportBuilder() + : base("Org.OData.Capabilities.V1.BatchSupport") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedBuilder.cs new file mode 100644 index 0000000..a1b2f90 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. + /// + public partial class BatchSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public BatchSupportedBuilder() + : base("Org.OData.Capabilities.V1.BatchSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedBuilder.cs new file mode 100644 index 0000000..af695e9 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports callbacks for the specified protocols + /// + public partial class CallbackSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public CallbackSupportedBuilder() + : base("Org.OData.Capabilities.V1.CallbackSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingBuilder.cs new file mode 100644 index 0000000..833f304 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Change tracking capabilities of this service or entity set + /// + public partial class ChangeTrackingBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public ChangeTrackingBuilder() + : base("Org.OData.Capabilities.V1.ChangeTracking") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsBuilder.cs new file mode 100644 index 0000000..942ff73 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Describes restrictions on operations applied to collection-valued structural properties + /// + public partial class CollectionPropertyRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public CollectionPropertyRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.CollectionPropertyRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedBuilder.cs new file mode 100644 index 0000000..ce0eb7f --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports $compute + /// + public partial class ComputeSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public ComputeSupportedBuilder() + : base("Org.OData.Capabilities.V1.ComputeSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelBuilder.cs new file mode 100644 index 0000000..701d071 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// The conformance level achieved by this service + /// + public partial class ConformanceLevelBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public ConformanceLevelBuilder() + : base("Org.OData.Capabilities.V1.ConformanceLevel") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsBuilder.cs new file mode 100644 index 0000000..e06fa7e --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on /$count path suffix and $count=true system query option + /// + public partial class CountRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public CountRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.CountRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedBuilder.cs new file mode 100644 index 0000000..6439c23 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports cross joins for the entity sets in this container + /// + public partial class CrossJoinSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public CrossJoinSupportedBuilder() + : base("Org.OData.Capabilities.V1.CrossJoinSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersBuilder.cs new file mode 100644 index 0000000..5c1d5d2 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Custom headers that are supported/required for the annotated resource + /// + public partial class CustomHeadersBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public CustomHeadersBuilder() + : base("Org.OData.Capabilities.V1.CustomHeaders") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsBuilder.cs new file mode 100644 index 0000000..7461785 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Custom query options that are supported/required for the annotated resource + /// + public partial class CustomQueryOptionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public CustomQueryOptionsBuilder() + : base("Org.OData.Capabilities.V1.CustomQueryOptions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportBuilder.cs new file mode 100644 index 0000000..23619c7 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + /// + public partial class DeepInsertSupportBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public DeepInsertSupportBuilder() + : base("Org.OData.Capabilities.V1.DeepInsertSupport") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportBuilder.cs new file mode 100644 index 0000000..287686e --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + /// + public partial class DeepUpdateSupportBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public DeepUpdateSupportBuilder() + : base("Org.OData.Capabilities.V1.DeepUpdateSupport") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsBuilder.cs new file mode 100644 index 0000000..ce740c9 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on delete operations + /// + public partial class DeleteRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public DeleteRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.DeleteRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsBuilder.cs new file mode 100644 index 0000000..4cda8cb --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on expand expressions + /// + public partial class ExpandRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public ExpandRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.ExpandRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsBuilder.cs new file mode 100644 index 0000000..0070668 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// List of functions and operators supported in filter expressions. + /// + public partial class FilterFunctionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public FilterFunctionsBuilder() + : base("Org.OData.Capabilities.V1.FilterFunctions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsBuilder.cs new file mode 100644 index 0000000..52b792e --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on filter expressions + /// + public partial class FilterRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public FilterRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.FilterRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyBuilder.cs new file mode 100644 index 0000000..dce4542 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports key values according to OData URL conventions + /// + public partial class IndexableByKeyBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public IndexableByKeyBuilder() + : base("Org.OData.Capabilities.V1.IndexableByKey") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsBuilder.cs new file mode 100644 index 0000000..abd3243 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on insert operations + /// + public partial class InsertRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public InsertRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.InsertRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedBuilder.cs new file mode 100644 index 0000000..0cf2f70 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supported odata.isolation levels + /// + public partial class IsolationSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public IsolationSupportedBuilder() + : base("Org.OData.Capabilities.V1.IsolationSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedBuilder.cs new file mode 100644 index 0000000..89debc5 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection + /// + public partial class KeyAsSegmentSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public KeyAsSegmentSupportedBuilder() + : base("Org.OData.Capabilities.V1.KeyAsSegmentSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedBuilder.cs new file mode 100644 index 0000000..c0a63c4 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Stream property supports update of its media edit URL and/or media read URL + /// + public partial class MediaLocationUpdateSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public MediaLocationUpdateSupportedBuilder() + : base("Org.OData.Capabilities.V1.MediaLocationUpdateSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsBuilder.cs new file mode 100644 index 0000000..3e4cb47 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Support for query options with modification requests (insert, update, action invocation) + /// + public partial class ModificationQueryOptionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public ModificationQueryOptionsBuilder() + : base("Org.OData.Capabilities.V1.ModificationQueryOptions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsBuilder.cs new file mode 100644 index 0000000..eca959e --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on navigating properties according to OData URL conventions + /// + public partial class NavigationRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public NavigationRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.NavigationRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsBuilder.cs new file mode 100644 index 0000000..c98b426 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions for function or action operation + /// + public partial class OperationRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public OperationRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.OperationRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedBuilder.cs new file mode 100644 index 0000000..dcc870b --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) + /// + public partial class QuerySegmentSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public QuerySegmentSupportedBuilder() + : base("Org.OData.Capabilities.V1.QuerySegmentSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsBuilder.cs new file mode 100644 index 0000000..a301d89 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions for retrieving a collection of entities, retrieving a singleton instance. + /// + public partial class ReadRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public ReadRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.ReadRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsBuilder.cs new file mode 100644 index 0000000..6e32008 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on search expressions + /// + public partial class SearchRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public SearchRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.SearchRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportBuilder.cs new file mode 100644 index 0000000..87c785a --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Support for $select and nested query options within $select + /// + public partial class SelectSupportBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public SelectSupportBuilder() + : base("Org.OData.Capabilities.V1.SelectSupport") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedBuilder.cs new file mode 100644 index 0000000..18eb2c8 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports $skip + /// + public partial class SkipSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public SkipSupportedBuilder() + : base("Org.OData.Capabilities.V1.SkipSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsBuilder.cs new file mode 100644 index 0000000..05cc997 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on orderby expressions + /// + public partial class SortRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public SortRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.SortRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsBuilder.cs new file mode 100644 index 0000000..2351980 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Media types of supported formats, including format parameters + /// + public partial class SupportedFormatsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public SupportedFormatsBuilder() + : base("Org.OData.Capabilities.V1.SupportedFormats") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsBuilder.cs new file mode 100644 index 0000000..43541d3 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Media types of supported formats for $metadata, including format parameters + /// + public partial class SupportedMetadataFormatsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public SupportedMetadataFormatsBuilder() + : base("Org.OData.Capabilities.V1.SupportedMetadataFormats") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedBuilder.cs new file mode 100644 index 0000000..2525f61 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports $top + /// + public partial class TopSupportedBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public TopSupportedBuilder() + : base("Org.OData.Capabilities.V1.TopSupported") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsBuilder.cs new file mode 100644 index 0000000..bff8f0f --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsBuilder.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on update operations + /// + public partial class UpdateRestrictionsBuilder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public UpdateRestrictionsBuilder() + : base("Org.OData.Capabilities.V1.UpdateRestrictions") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.cs new file mode 100644 index 0000000..43057bf --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.cs @@ -0,0 +1,458 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +using Microsoft.OData.ModelBuilder.Capabilities.V1; + +namespace Microsoft.OData.ModelBuilder +{ + /// + /// Interface for clr types that can be converted into + /// + public interface IRecord + { + /// + /// Convert a clr type to an + /// + /// + IEdmExpression ToEdmExpression(); + } + + /// + /// Base vocabulary builder. + /// + public abstract partial class VocabularyBuilder : IRecord + { + private readonly string _termName; + + /// + /// Creates a new instance of + /// + /// The name of the being built. + public VocabularyBuilder(string termName) => _termName = termName; + + /// + public abstract IEdmExpression ToEdmExpression(); + + /// + /// Sets the vocabulary annotation on the model's target. + /// + /// The having reference vocabulary models. + /// The to set annotations on. + public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnotatable target) + { + _ = model ?? throw new ArgumentNullException(nameof(model)); + _ = target ?? throw new ArgumentNullException(nameof(target)); + + var expression = ToEdmExpression(); + if (expression == null) + { + return; + } + + var term = model.FindTerm(_termName); + if (term == null) + { + return; + } + + var annotation = new EdmVocabularyAnnotation(target, term, expression); + model.SetVocabularyAnnotation(annotation); + } + } + + /// + /// Extension methods for vocabulary builders configurations + /// + public static class VocabularyBuilderExtensions + { + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ConformanceLevelBuilder HasConformanceLevel(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SupportedFormatsBuilder HasSupportedFormats(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SupportedMetadataFormatsBuilder HasSupportedMetadataFormats(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static AcceptableEncodingsBuilder HasAcceptableEncodings(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static AsynchronousRequestsSupportedBuilder HasAsynchronousRequestsSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static BatchContinueOnErrorSupportedBuilder HasBatchContinueOnErrorSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static IsolationSupportedBuilder HasIsolationSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static CrossJoinSupportedBuilder HasCrossJoinSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static CallbackSupportedBuilder HasCallbackSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ChangeTrackingBuilder HasChangeTracking(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static CountRestrictionsBuilder HasCountRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static NavigationRestrictionsBuilder HasNavigationRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static IndexableByKeyBuilder HasIndexableByKey(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static TopSupportedBuilder HasTopSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SkipSupportedBuilder HasSkipSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ComputeSupportedBuilder HasComputeSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SelectSupportBuilder HasSelectSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static BatchSupportedBuilder HasBatchSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static BatchSupportBuilder HasBatchSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static FilterFunctionsBuilder HasFilterFunctions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static FilterRestrictionsBuilder HasFilterRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SortRestrictionsBuilder HasSortRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ExpandRestrictionsBuilder HasExpandRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SearchRestrictionsBuilder HasSearchRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static KeyAsSegmentSupportedBuilder HasKeyAsSegmentSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static QuerySegmentSupportedBuilder HasQuerySegmentSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static InsertRestrictionsBuilder HasInsertRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static DeepInsertSupportBuilder HasDeepInsertSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static UpdateRestrictionsBuilder HasUpdateRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static DeepUpdateSupportBuilder HasDeepUpdateSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static DeleteRestrictionsBuilder HasDeleteRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static CollectionPropertyRestrictionsBuilder HasCollectionPropertyRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static OperationRestrictionsBuilder HasOperationRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static AnnotationValuesInQuerySupportedBuilder HasAnnotationValuesInQuerySupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ModificationQueryOptionsBuilder HasModificationQueryOptions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ReadRestrictionsBuilder HasReadRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static CustomHeadersBuilder HasCustomHeaders(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static CustomQueryOptionsBuilder HasCustomQueryOptions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static MediaLocationUpdateSupportedBuilder HasMediaLocationUpdateSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder(); + + /// + /// Apply all builders as configured + /// + public static void SetVocabularyBuilderAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration configuration) + { + _ = model ?? throw Error.ArgumentNull(nameof(model)); + if (target == null || configuration == null) + { + return; + } + + foreach (var builder in configuration.VocabularyBuilders.Values) + { + builder.SetVocabularyAnnotations(model, (IEdmVocabularyAnnotatable)target); + } + } + + private static TBuilder GetVocabularyBuilder(this NavigationSourceConfiguration navigationSource) where TBuilder : VocabularyBuilder, new() where TEntity : class + { + var vocabularyBuilders = navigationSource.Configuration.VocabularyBuilders; + if (vocabularyBuilders.TryGetValue(typeof(TBuilder), out var builder)) + { + return builder as TBuilder; + } + + builder = new TBuilder(); + vocabularyBuilders.Add(typeof(TBuilder), builder); + + return (TBuilder)builder; + } + } +} + diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.tt new file mode 100644 index 0000000..9c8c63c --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.tt @@ -0,0 +1,278 @@ +<#@ template debug="false" hostspecific="true" language="C#" #> +<#@ assembly name="System.Core" #> +<#@ assembly name="System.Runtime" #> +<#@ assembly name="Microsoft.OData.Edm" #> +<#@ import namespace="System.IO" #> +<#@ import namespace="System.Linq" #> +<#@ import namespace="System.Text" #> +<#@ import namespace="System.Collections.Generic" #> +<#@ import namespace="Microsoft.OData.Edm" #> +<#@ import namespace="Microsoft.OData.Edm.Csdl" #> +<#@ import namespace="Microsoft.OData.Edm.Vocabularies" #> +<#@ output extension=".cs" #> +<# + var model = new EdmModel().ReferencedModels.FirstOrDefault(m => m.GetNamespaceAlias("Org.OData.Capabilities.V1") != null); + if (model == null) + { + throw new InvalidOperationException("The Capabilities Model Cannot Be Found"); + } + + var manager = new Manager(this, model); + var namespaces = manager.Process(); +#> +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +<# + foreach(var ns in namespaces) + { + WriteLine($"using {ns};"); + } +#> + +namespace Microsoft.OData.ModelBuilder +{ + /// + /// Interface for clr types that can be converted into + /// + public interface IRecord + { + /// + /// Convert a clr type to an + /// + /// + IEdmExpression ToEdmExpression(); + } + + /// + /// Base vocabulary builder. + /// + public abstract partial class VocabularyBuilder : IRecord + { + private readonly string _termName; + + /// + /// Creates a new instance of + /// + /// The name of the being built. + public VocabularyBuilder(string termName) => _termName = termName; + + /// + public abstract IEdmExpression ToEdmExpression(); + + /// + /// Sets the vocabulary annotation on the model's target. + /// + /// The having reference vocabulary models. + /// The to set annotations on. + public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnotatable target) + { + _ = model ?? throw new ArgumentNullException(nameof(model)); + _ = target ?? throw new ArgumentNullException(nameof(target)); + + var expression = ToEdmExpression(); + if (expression == null) + { + return; + } + + var term = model.FindTerm(_termName); + if (term == null) + { + return; + } + + var annotation = new EdmVocabularyAnnotation(target, term, expression); + model.SetVocabularyAnnotation(annotation); + } + } + + /// + /// Extension methods for vocabulary builders configurations + /// + public static class VocabularyBuilderExtensions + { +<# + foreach (var term in model.SchemaElements.OfType()) + { +#> + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static <#= term.Name #>Builder Has<#= term.Name #>(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyBuilder<<#= term.Name #>Builder, TEntity>(); + +<# + } +#> + /// + /// Apply all builders as configured + /// + public static void SetVocabularyBuilderAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration configuration) + { + _ = model ?? throw Error.ArgumentNull(nameof(model)); + if (target == null || configuration == null) + { + return; + } + + foreach (var builder in configuration.VocabularyBuilders.Values) + { + builder.SetVocabularyAnnotations(model, (IEdmVocabularyAnnotatable)target); + } + } + + private static TBuilder GetVocabularyBuilder(this NavigationSourceConfiguration navigationSource) where TBuilder : VocabularyBuilder, new() where TEntity : class + { + var vocabularyBuilders = navigationSource.Configuration.VocabularyBuilders; + if (vocabularyBuilders.TryGetValue(typeof(TBuilder), out var builder)) + { + return builder as TBuilder; + } + + builder = new TBuilder(); + vocabularyBuilders.Add(typeof(TBuilder), builder); + + return (TBuilder)builder; + } + } +} + +<#+ +class Manager : GeneratedTextTransformation +{ + private readonly Dictionary _namespaceMap = new Dictionary(); + private readonly string _templateDirectory; + private readonly IEdmModel _model; + + public Manager(GeneratedTextTransformation transformation, IEdmModel model) + { + _templateDirectory = Path.GetDirectoryName(transformation.Host.TemplateFile); + _model = model; + } + + public IEnumerable Process() + { + foreach (var term in _model.SchemaElements.OfType()) + { + WriteTerm(term); + } + + return _namespaceMap.Values.Select(v => v.Namespace).Distinct(); + } + + public void WriteTerm(IEdmTerm term) + { + WriteHeader(); +#> +namespace <#= GetNamespace(term) #> +{ + /// + <#+ ProcessSummary(term, " "); #> + /// + public partial class <#= term.Name #>Builder : VocabularyBuilder + { + /// + /// Creates a new instance of + /// + public <#= term.Name #>Builder() + : base("<#= term.FullName()#>") + { + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} +<#+ + Dump(term); + } + + public void WriteHeader() + { +#> +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +<#+ + } + + public void WriteClass() + { + + } + + private void ProcessSummary(IEdmVocabularyAnnotatable target, string indent) + { + var description = _model.GetDescriptionAnnotation(target) ?? target.ToString(); + ProcessSummary(description, indent); + } + + private void ProcessSummary(string text, string indent) + { + if (string.IsNullOrEmpty(text)) + { + WriteLine("/// Summary"); + } + var lines = text.Split(new char[] { '\r', '\n' }); + WriteLine($"/// {lines.FirstOrDefault()}"); + foreach (var line in lines.Skip(1)) + { + WriteLine($"{indent}/// {line}"); + } + } + + private string GetNamespace(IEdmSchemaElement element) => GetFileDetails(element).Namespace; + + private string GetFilePath(IEdmSchemaElement element) => GetFileDetails(element).FilePath; + + private (string Namespace, string FilePath) GetFileDetails(IEdmSchemaElement element) + { + var key = element.FullName(); + if (_namespaceMap.TryGetValue(key, out var details)) + { + return details; + } + + var vocabulary = element.Namespace.Replace("Org.OData", string.Empty); + var @namespace = $"Microsoft.OData.ModelBuilder{vocabulary}"; + var fileParts = vocabulary.Split(new char[]{'.'}, StringSplitOptions.RemoveEmptyEntries).ToList(); + fileParts.Insert(0, _templateDirectory); + fileParts.Add($"{element.Name}Builder.cs"); + var filePath = Path.Combine(fileParts.ToArray()); + + details = (@namespace, filePath); + _namespaceMap.Add(key, details); + + return details; + } + + private void Dump(IEdmSchemaElement element) + { + var filePath = GetFilePath(element); + Directory.CreateDirectory(Path.GetDirectoryName(filePath)); + File.WriteAllText(GetFilePath(element), this.GenerationEnvironment.ToString()); + this.GenerationEnvironment.Remove(0, this.GenerationEnvironment.Length); + } +} +#> \ No newline at end of file From 2817fe7fddfc5d28c8a8d664d5dadef312d39991 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 17 Jun 2020 00:12:31 +0300 Subject: [PATCH 02/29] Bsl and xml fixes. --- .../Microsoft.OData.ModelBuilder.xml | 866 ++++++++++++++++++ ...Microsoft.OData.ModelBuilder.PublicApi.bsl | 453 ++++++++- 2 files changed, 1318 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml index fb4677b..04b8ae9 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml @@ -1219,6 +1219,11 @@ Gets the name of this navigation source. + + + Vocabulary builders to annotate this + + Gets the navigation source URL. @@ -5106,5 +5111,866 @@ This entity set supports the expand expressions. These properties cannot be used in $expand expressions. + + + List of acceptable compression methods for ($batch) requests, e.g. gzip + + + + + Creates a new instance of + + + + + + + + Supports annotation values within system query options + + + + + Creates a new instance of + + + + + + + + Service supports the asynchronous request preference + + + + + Creates a new instance of + + + + + + + + Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. + + + + + Creates a new instance of + + + + + + + + Batch Support for the service + + + + + Creates a new instance of + + + + + + + + Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. + + + + + Creates a new instance of + + + + + + + + Supports callbacks for the specified protocols + + + + + Creates a new instance of + + + + + + + + Change tracking capabilities of this service or entity set + + + + + Creates a new instance of + + + + + + + + Describes restrictions on operations applied to collection-valued structural properties + + + + + Creates a new instance of + + + + + + + + Supports $compute + + + + + Creates a new instance of + + + + + + + + The conformance level achieved by this service + + + + + Creates a new instance of + + + + + + + + Restrictions on /$count path suffix and $count=true system query option + + + + + Creates a new instance of + + + + + + + + Supports cross joins for the entity sets in this container + + + + + Creates a new instance of + + + + + + + + Custom headers that are supported/required for the annotated resource + + + + + Creates a new instance of + + + + + + + + Custom query options that are supported/required for the annotated resource + + + + + Creates a new instance of + + + + + + + + Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + + + + + Creates a new instance of + + + + + + + + Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + + + + + Creates a new instance of + + + + + + + + Restrictions on delete operations + + + + + Creates a new instance of + + + + + + + + Restrictions on expand expressions + + + + + Creates a new instance of + + + + + + + + List of functions and operators supported in filter expressions. + + + + + Creates a new instance of + + + + + + + + Restrictions on filter expressions + + + + + Creates a new instance of + + + + + + + + Supports key values according to OData URL conventions + + + + + Creates a new instance of + + + + + + + + Restrictions on insert operations + + + + + Creates a new instance of + + + + + + + + Supported odata.isolation levels + + + + + Creates a new instance of + + + + + + + + Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection + + + + + Creates a new instance of + + + + + + + + Stream property supports update of its media edit URL and/or media read URL + + + + + Creates a new instance of + + + + + + + + Support for query options with modification requests (insert, update, action invocation) + + + + + Creates a new instance of + + + + + + + + Restrictions on navigating properties according to OData URL conventions + + + + + Creates a new instance of + + + + + + + + Restrictions for function or action operation + + + + + Creates a new instance of + + + + + + + + Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) + + + + + Creates a new instance of + + + + + + + + Restrictions for retrieving a collection of entities, retrieving a singleton instance. + + + + + Creates a new instance of + + + + + + + + Restrictions on search expressions + + + + + Creates a new instance of + + + + + + + + Support for $select and nested query options within $select + + + + + Creates a new instance of + + + + + + + + Supports $skip + + + + + Creates a new instance of + + + + + + + + Restrictions on orderby expressions + + + + + Creates a new instance of + + + + + + + + Media types of supported formats, including format parameters + + + + + Creates a new instance of + + + + + + + + Media types of supported formats for $metadata, including format parameters + + + + + Creates a new instance of + + + + + + + + Supports $top + + + + + Creates a new instance of + + + + + + + + Restrictions on update operations + + + + + Creates a new instance of + + + + + + + + Interface for clr types that can be converted into + + + + + Convert a clr type to an + + + + + + Base vocabulary builder. + + + + + Creates a new instance of + + The name of the being built. + + + + + + + Sets the vocabulary annotation on the model's target. + + The having reference vocabulary models. + The to set annotations on. + + + + Extension methods for vocabulary builders configurations + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + configuration + + The entity type of the navigation source. + The that can be built using . + + + + + Apply all builders as configured + + diff --git a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl index 75055e4..4301952 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl +++ b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl @@ -1,4 +1,4 @@ -[ +[ FlagsAttribute(), ] public enum Microsoft.OData.ModelBuilder.NameResolverOptions : int { @@ -48,6 +48,10 @@ public interface Microsoft.OData.ModelBuilder.IEdmTypeConfiguration { public interface Microsoft.OData.ModelBuilder.IODataModelConvention { } +public interface Microsoft.OData.ModelBuilder.IRecord { + Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + public abstract class Microsoft.OData.ModelBuilder.NavigationSourceConfiguration { protected NavigationSourceConfiguration () protected NavigationSourceConfiguration (Microsoft.OData.ModelBuilder.ODataModelBuilder modelBuilder, Microsoft.OData.ModelBuilder.EntityTypeConfiguration entityType, string name) @@ -57,6 +61,7 @@ public abstract class Microsoft.OData.ModelBuilder.NavigationSourceConfiguration System.Type ClrType { public get; } Microsoft.OData.ModelBuilder.EntityTypeConfiguration EntityType { public virtual get; } string Name { public get; } + System.Collections.Generic.Dictionary`2[[System.Type],[Microsoft.OData.ModelBuilder.VocabularyBuilder]] VocabularyBuilders { public get; } public virtual Microsoft.OData.ModelBuilder.NavigationPropertyBindingConfiguration AddBinding (Microsoft.OData.ModelBuilder.NavigationPropertyConfiguration navigationConfiguration, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration targetNavigationSource) public virtual Microsoft.OData.ModelBuilder.NavigationPropertyBindingConfiguration AddBinding (Microsoft.OData.ModelBuilder.NavigationPropertyConfiguration navigationConfiguration, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration targetNavigationSource, System.Collections.Generic.IList`1[[System.Reflection.MemberInfo]] bindingPath) @@ -252,6 +257,13 @@ public abstract class Microsoft.OData.ModelBuilder.StructuralTypeConfiguration`1 public Microsoft.OData.ModelBuilder.PrimitivePropertyConfiguration Property (Expression`1 propertyExpression) } +public abstract class Microsoft.OData.ModelBuilder.VocabularyBuilder : IRecord { + public VocabularyBuilder (string termName) + + public virtual void SetVocabularyAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotatable target) + public abstract Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + [ ExtensionAttribute(), ] @@ -297,6 +309,211 @@ public sealed class Microsoft.OData.ModelBuilder.PrimitivePropertyConfigurationE public static Microsoft.OData.ModelBuilder.PrimitivePropertyConfiguration AsTimeOfDay (Microsoft.OData.ModelBuilder.PrimitivePropertyConfiguration property) } +[ +ExtensionAttribute(), +] +public sealed class Microsoft.OData.ModelBuilder.VocabularyBuilderExtensions { + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsBuilder HasAcceptableEncodings (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedBuilder HasAnnotationValuesInQuerySupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedBuilder HasAsynchronousRequestsSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedBuilder HasBatchContinueOnErrorSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportBuilder HasBatchSupport (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedBuilder HasBatchSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedBuilder HasCallbackSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingBuilder HasChangeTracking (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsBuilder HasCollectionPropertyRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedBuilder HasComputeSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelBuilder HasConformanceLevel (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsBuilder HasCountRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedBuilder HasCrossJoinSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersBuilder HasCustomHeaders (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsBuilder HasCustomQueryOptions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportBuilder HasDeepInsertSupport (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportBuilder HasDeepUpdateSupport (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsBuilder HasDeleteRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsBuilder HasExpandRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsBuilder HasFilterFunctions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsBuilder HasFilterRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyBuilder HasIndexableByKey (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsBuilder HasInsertRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedBuilder HasIsolationSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedBuilder HasKeyAsSegmentSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedBuilder HasMediaLocationUpdateSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsBuilder HasModificationQueryOptions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsBuilder HasNavigationRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsBuilder HasOperationRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedBuilder HasQuerySegmentSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsBuilder HasReadRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsBuilder HasSearchRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportBuilder HasSelectSupport (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedBuilder HasSkipSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsBuilder HasSortRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsBuilder HasSupportedFormats (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsBuilder HasSupportedMetadataFormats (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedBuilder HasTopSupported (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsBuilder HasUpdateRestrictions (NavigationSourceConfiguration`1 navigationSource) + + [ + ExtensionAttribute(), + ] + public static void SetVocabularyBuilderAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.EdmNavigationSource target, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration configuration) +} + public class Microsoft.OData.ModelBuilder.ActionConfiguration : Microsoft.OData.ModelBuilder.OperationConfiguration { bool IsSideEffecting { public virtual get; } Microsoft.OData.ModelBuilder.OperationKind Kind { public virtual get; } @@ -917,6 +1134,240 @@ public class Microsoft.OData.ModelBuilder.Conventions.ODataModelConventionSet { public ODataModelConventionSet () } +public class Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public AcceptableEncodingsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public AnnotationValuesInQuerySupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public AsynchronousRequestsSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public BatchContinueOnErrorSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public BatchSupportBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public BatchSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public CallbackSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public ChangeTrackingBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public CollectionPropertyRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public ComputeSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public ConformanceLevelBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public CountRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public CrossJoinSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public CustomHeadersBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public CustomQueryOptionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public DeepInsertSupportBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public DeepUpdateSupportBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public DeleteRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public ExpandRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public FilterFunctionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public FilterRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public IndexableByKeyBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public InsertRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public IsolationSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public KeyAsSegmentSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public MediaLocationUpdateSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public ModificationQueryOptionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public NavigationRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public OperationRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public QuerySegmentSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public ReadRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public SearchRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public SelectSupportBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public SkipSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public SortRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public SupportedFormatsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public SupportedMetadataFormatsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public TopSupportedBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { + public UpdateRestrictionsBuilder () + + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + public abstract class Microsoft.OData.ModelBuilder.Conventions.Attributes.AttributeConvention : IODataModelConvention { protected AttributeConvention (System.Func`2[[System.Attribute],[System.Boolean]] attributeFilter, bool allowMultiple) From c48770129083a40390d90d0bfacdd87438cfde19 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 17 Jun 2020 20:31:02 +0300 Subject: [PATCH 03/29] Autogeneration in progress. --- .../Vocabulary/VocabularyConfiguration.tt | 577 ++++++++++++++++++ 1 file changed, 577 insertions(+) create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt new file mode 100644 index 0000000..012f3c7 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt @@ -0,0 +1,577 @@ +<#@ template debug="false" hostspecific="true" language="C#" #> +<#@ assembly name="System.Core" #> +<#@ assembly name="System.Runtime" #> +<#@ assembly name="Microsoft.OData.Edm" #> +<#@ import namespace="System.IO" #> +<#@ import namespace="System.Linq" #> +<#@ import namespace="System.Text" #> +<#@ import namespace="System.Collections.Generic" #> +<#@ import namespace="Microsoft.OData.Edm" #> +<#@ import namespace="Microsoft.OData.Edm.Csdl" #> +<#@ import namespace="Microsoft.OData.Edm.Vocabularies" #> +<#@ output extension=".cs" #> +<# + var model = new EdmModel().ReferencedModels.FirstOrDefault(m => m.GetNamespaceAlias("Org.OData.Capabilities.V1") != null); + if (model == null) + { + throw new InvalidOperationException("The Capabilities Model Cannot Be Found"); + } + + var manager = new Manager(this, model); + var namespaces = manager.Process(); +#> +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +<# + foreach(var ns in namespaces) + { + WriteLine($"using {ns};"); + } +#> + +namespace Microsoft.OData.ModelBuilder +{ + /// + /// Interface for clr types that can be converted into + /// + public interface IRecord + { + /// + /// Convert a clr type to an + /// + /// + IEdmExpression ToEdmExpression(); + } + + /// + /// Base vocabulary configuration. + /// + public abstract partial class VocabularyConfiguration : IRecord + { + private readonly string _termName; + + /// + /// Creates a new instance of + /// + /// The name of the being built. + public VocabularyConfiguration(string termName) => _termName = termName; + + /// + public abstract IEdmExpression ToEdmExpression(); + + /// + /// Sets the vocabulary annotation on the model's target. + /// + /// The having reference vocabulary models. + /// The to set annotations on. + public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnotatable target) + { + _ = model ?? throw new ArgumentNullException(nameof(model)); + _ = target ?? throw new ArgumentNullException(nameof(target)); + + var expression = ToEdmExpression(); + if (expression == null) + { + return; + } + + var term = model.FindTerm(_termName); + if (term == null) + { + return; + } + + var annotation = new EdmVocabularyAnnotation(target, term, expression); + model.SetVocabularyAnnotation(annotation); + } + } + + /// + /// Extension methods for vocabulary builders configurations + /// + public static class VocabularyConfigurationExtensions + { +<# + foreach (var term in model.SchemaElements.OfType()) + { + var sourceConfig = default(string); + if (term.AppliesTo.Contains("Singleton") && term.AppliesTo.Contains("EntitySet")) + { + sourceConfig = "NavigationSourceConfiguration"; + } + else if (term.AppliesTo.Contains("Singleton")) + { + sourceConfig = "SingletonConfiguration"; + } + else if (term.AppliesTo.Contains("EntitySet")) + { + sourceConfig = "EntitySetConfiguration"; + } + else + { + continue; + } +#> + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static <#= term.Name #>Configuration Has<#= term.Name #>(this <#= sourceConfig #> navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration<<#= term.Name #>Configuration, TEntity>(); + +<# + } +#> + /// + /// Apply all builders as configured + /// + public static void SetVocabularyConfigurationAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration navigationConfiguration) + { + _ = model ?? throw Error.ArgumentNull(nameof(model)); + if (target == null || navigationConfiguration == null) + { + return; + } + + foreach (var configuration in navigationConfiguration.VocabularyConfigurations.Values) + { + configuration.SetVocabularyAnnotations(model, (IEdmVocabularyAnnotatable)target); + } + } + + private static TConfiguration GetVocabularyConfiguration(this NavigationSourceConfiguration navigationSource) where TConfiguration : VocabularyConfiguration, new() where TEntity : class + { + var vocabularyConfigurations = navigationSource.Configuration.VocabularyConfigurations; + if (vocabularyConfigurations.TryGetValue(typeof(TConfiguration), out var configuration)) + { + return configuration as TConfiguration; + } + + configuration = new TConfiguration(); + vocabularyConfigurations.Add(typeof(TConfiguration), configuration); + + return (TConfiguration)configuration; + } + } +} + +<#+ +class Manager : GeneratedTextTransformation +{ + private readonly Dictionary _namespaceMap = new Dictionary(); + private readonly string _templateDirectory; + private readonly IEdmModel _model; + private readonly Dictionary _typesToGenerateMap = new Dictionary(); + private readonly Dictionary _typesClrMap = new Dictionary(); + + public Manager(GeneratedTextTransformation transformation, IEdmModel model) + { + _templateDirectory = Path.GetDirectoryName(transformation.Host.TemplateFile); + _model = model; + } + + public IEnumerable Process() + { + foreach (var term in _model.SchemaElements.OfType()) + { + WriteTerm(term); + } + + while (true) + { + if (!_typesToGenerateMap.ContainsValue(false)) + { + break; + } + + var keyval = _typesToGenerateMap.FirstOrDefault(kv => kv.Value == false); + var type = keyval.Key; + if (type.TypeKind == EdmTypeKind.Complex) + { + WriteClass(type as IEdmComplexType); + } + else if (type.TypeKind == EdmTypeKind.Enum) + { + WriteEnum(type as IEdmEnumType); + } + + _typesToGenerateMap[type] = true; + } + + return _namespaceMap.Values.Select(v => v.Namespace).Distinct(); + } + + public void WriteTerm(IEdmTerm term) + { + var actualType = term.Type.Definition; + var description = _model.GetDescriptionAnnotation(term); + if (actualType.TypeKind == EdmTypeKind.Complex) + { + _typesToGenerateMap[actualType] = true; + } + + WriteHeader(); +#> +namespace <#= GetNamespace(term) #> +{ + /// + <#+ ProcessSummary(description, " "); #> + /// + public partial class <#= term.Name #>Configuration : VocabularyConfiguration + { +<#+ + ProcessPrivateProperties(term.Type.Definition, term.FullName()); +#> + + /// + /// Creates a new instance of + /// + public <#= term.Name #>Configuration() + : base("<#= term.FullName()#>") + { + } +<#+ + ProcessBuildMethods(term.Type.Definition, term.FullName(), term.Name, description); +#> + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} +<#+ + Dump(term); + } + + public void WriteClass(IEdmComplexType complexType) + { + var description = _model.GetDescriptionAnnotation(complexType); + + WriteHeader(); +#> +namespace <#= GetNamespace(complexType) #> +{ + /// + <#+ ProcessSummary(description, " "); #> + /// + public partial class <#= complexType.Name #>Configuration : IRecord + { +<#+ + ProcessPrivateProperties(complexType, complexType.FullName()); +#> + + /// + /// Creates a new instance of + /// + public <#= complexType.Name #>Configuration() + { + } +<#+ + ProcessBuildMethods(complexType, complexType.FullName(), complexType.Name, description); +#> + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} +<#+ + Dump(complexType); + } + + public void WriteEnum(IEdmEnumType enumType) + { + var description = _model.GetDescriptionAnnotation(enumType); + + WriteHeader(); +#> +namespace <#= GetNamespace(enumType) #> +{ + /// + <#+ ProcessSummary(description, " "); #> + /// + public enum <#= enumType.Name #> + { +<#+ + foreach (var member in enumType.Members) + { +#> + + /// + <#+ ProcessSummary(member, " "); #> + /// + <#= member.Name #>, +<#+ + } +#> + } +} +<#+ + + Dump(enumType); + } + + public void WriteHeader() + { +#> +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +<#+ + } + + private void ProcessPrivateProperties(IEdmType type, string fullName, bool allowRecurse = true) + { + var typeKind = type.TypeKind; + var actualType = type.AsElementType().AsActualType(); + var clrType = GetClrType(actualType, true); + var name = fullName.Substring(fullName.LastIndexOf('.') + 1); + + if (!_typesToGenerateMap.ContainsKey(actualType)) + { + _typesToGenerateMap.Add(actualType, false); + } + + if (typeKind == EdmTypeKind.Collection) + { + clrType = GetClrType(actualType, false); +#> + private readonly HashSet<<#= clrType #>> _<#= CamelCase(name) #> = new HashSet<<#= clrType #>>(); +<#+ + return; + } + else if (typeKind == EdmTypeKind.Complex) + { + if (allowRecurse) + { + var complexType = type as IEdmComplexType; + foreach (var property in complexType.DeclaredProperties) + { + ProcessPrivateProperties(property.Type.Definition, property.Name, false); + } + + return; + } + + clrType = clrType + "Configuration"; + } +#> + private <#= clrType #> _<#= CamelCase(name) #>; +<#+ + } + + private void ProcessBuildMethods(IEdmType type, string fullName, string returnType, string description, bool allowRecurse = true) + { + var typeKind = type.TypeKind; + var actualType = type.AsElementType().AsActualType(); + var clrType = GetClrType(actualType, false); + var name = fullName.Substring(fullName.LastIndexOf('.') + 1); + var camelName = CamelCase(name); + + if (typeKind == EdmTypeKind.Collection) + { + clrType = GetClrType(actualType, false); +#> + + /// + <#+ ProcessSummary(description, " "); #> + /// + /// The value(s) to set + /// + public <#=returnType #>Configuration Add<#= name #>(params <#= clrType #>[] <#= camelName #>) + { + foreach (var item in <#= camelName #>) + { + _ = _<#= camelName #>.Add(item); + } + + return this; + } +<#+ + return; + } + + if (typeKind == EdmTypeKind.Complex) + { + if (allowRecurse) + { + var complexType = type as IEdmComplexType; + foreach (var property in complexType.DeclaredProperties) + { + description = _model.GetDescriptionAnnotation(property); + ProcessBuildMethods(property.Type.Definition, property.Name, returnType, description, false); + } + + return; + } + + clrType = clrType + "Configuration"; + } +#> + + /// + <#+ ProcessSummary(description, " "); #> + /// + /// The value to set + /// + public <#=returnType #>Configuration Has<#= name #>(<#= clrType #> <#= camelName #>) + { + _<#= camelName #> = <#= camelName #>; + return this; + } +<#+ + } + + private string GetClrType(IEdmType type, bool nullable = false) + { + var suffix = nullable ? "?" : string.Empty; + if (_typesClrMap.TryGetValue(type, out var clrType)) + { + return AddSuffix(clrType); + } + + var name = type.FullTypeName(); + switch(name) + { + case "Edm.String": + clrType = "string"; + break; + case "Edm.Boolean": + clrType = "bool"; + break; + case "Edm.Int32": + clrType = "int"; + break; + case "Edm.PrimitiveType": + clrType = "object"; + break; + case "Edm.NavigationPropertyPath": + clrType = "EdmNavigationPropertyPathExpression"; + break; + case "Edm.PropertyPath": + clrType = "EdmPropertyPathExpression"; + break; + default: + clrType = name.Substring(name.LastIndexOf('.') + 1); + break; + } + + if (type.TypeKind == EdmTypeKind.Complex) + { + var term = _model.SchemaElements.OfType().FirstOrDefault(t => t.Type.Definition.AsElementType().AsActualType() == type) ; + if (term != null) + { + clrType = term.Name.Substring(term.Name.LastIndexOf('.') + 1); + } + else + { + clrType = clrType + "Configuration"; + } + } + + _typesClrMap.Add(type, clrType); + + return AddSuffix(clrType); + + string AddSuffix(string clr) + { + if (!nullable) + { + return clr; + } + + if (clr == "bool" || clr == "int") + { + return clr + "?"; + } + + return clr; + } + } + + private string CamelCase(string input) + { + return string.Concat(input[0].ToString().ToLower(), input.Substring(1)); + } + + private void ProcessSummary(IEdmVocabularyAnnotatable target, string indent) + { + var description = _model.GetDescriptionAnnotation(target) ?? target.ToString(); + ProcessSummary(description, indent); + } + + private void ProcessSummary(string text, string indent) + { + if (string.IsNullOrEmpty(text)) + { + WriteLine("/// Summary"); + } + var lines = text?.Split(new char[] { '\r', '\n' }) ?? new string[0]; + WriteLine($"/// {lines.FirstOrDefault()}"); + foreach (var line in lines.Skip(1)) + { + WriteLine($"{indent}/// {line}"); + } + } + + private string GetNamespace(IEdmSchemaElement element) => GetFileDetails(element).Namespace; + + private string GetFilePath(IEdmSchemaElement element) => GetFileDetails(element).FilePath; + + private (string Namespace, string FilePath) GetFileDetails(IEdmSchemaElement element) + { + var key = element.FullName(); + if (_namespaceMap.TryGetValue(key, out var details)) + { + return details; + } + + var suffix = "Configuration"; + if (element is IEdmEnumType) + { + suffix = string.Empty; + } + + var vocabulary = element.Namespace.Replace("Org.OData", string.Empty); + var @namespace = $"Microsoft.OData.ModelBuilder{vocabulary}"; + var fileParts = vocabulary.Split(new char[]{'.'}, StringSplitOptions.RemoveEmptyEntries).ToList(); + fileParts.Insert(0, _templateDirectory); + fileParts.Add($"{element.Name}{suffix}.cs"); + var filePath = Path.Combine(fileParts.ToArray()); + + details = (@namespace, filePath); + _namespaceMap.Add(key, details); + + return details; + } + + private void Dump(IEdmSchemaElement element) + { + var filePath = GetFilePath(element); + Directory.CreateDirectory(Path.GetDirectoryName(filePath)); + File.WriteAllText(GetFilePath(element), this.GenerationEnvironment.ToString()); + this.GenerationEnvironment.Remove(0, this.GenerationEnvironment.Length); + } +} +#> \ No newline at end of file From dce1da3f92b7a9a84f5d6dab3338aa5ed1698ad7 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 17 Jun 2020 20:31:23 +0300 Subject: [PATCH 04/29] Autogeneration in progress. --- .../NavigationSourceConfiguration.cs | 4 +- .../Microsoft.OData.ModelBuilder.csproj | 16 +- ...cs => AcceptableEncodingsConfiguration.cs} | 23 +- ...ionValuesInQuerySupportedConfiguration.cs} | 19 +- ...chronousRequestsSupportedConfiguration.cs} | 19 +- ...hContinueOnErrorSupportedConfiguration.cs} | 19 +- .../V1/BatchSupportConfiguration.cs | 121 +++++ ...lder.cs => BatchSupportedConfiguration.cs} | 19 +- .../V1/CallbackProtocolConfiguration.cs | 69 +++ ...r.cs => CallbackSupportedConfiguration.cs} | 23 +- .../Capabilities/V1/ChangeTrackingBuilder.cs | 32 -- .../V1/ChangeTrackingConfiguration.cs | 77 +++ .../CollectionPropertyRestrictionsBuilder.cs | 32 -- ...ectionPropertyRestrictionsConfiguration.cs | 49 ++ ...onPropertyRestrictionsTypeConfiguration.cs | 169 +++++++ .../V1/ComputeSupportedConfiguration.cs | 45 ++ ...er.cs => ConformanceLevelConfiguration.cs} | 19 +- ...rtedBuilder.cs => ConformanceLevelType.cs} | 27 +- .../V1/CountRestrictionsBuilder.cs | 32 -- .../V1/CountRestrictionsConfiguration.cs | 77 +++ ....cs => CrossJoinSupportedConfiguration.cs} | 19 +- .../Capabilities/V1/CustomHeadersBuilder.cs | 32 -- .../V1/CustomHeadersConfiguration.cs | 49 ++ .../V1/CustomParameterConfiguration.cs | 96 ++++ ....cs => CustomQueryOptionsConfiguration.cs} | 23 +- .../V1/DeepInsertSupportBuilder.cs | 32 -- .../V1/DeepInsertSupportConfiguration.cs | 57 +++ .../V1/DeepUpdateSupportBuilder.cs | 32 -- .../V1/DeepUpdateSupportConfiguration.cs | 57 +++ .../V1/DeleteRestrictionsBuilder.cs | 32 -- .../V1/DeleteRestrictionsConfiguration.cs | 169 +++++++ .../V1/ExpandRestrictionsBuilder.cs | 32 -- .../V1/ExpandRestrictionsConfiguration.cs | 85 ++++ ...rExpressionRestrictionTypeConfiguration.cs | 57 +++ ...der.cs => FilterFunctionsConfiguration.cs} | 23 +- .../V1/FilterRestrictionsBuilder.cs | 32 -- .../V1/FilterRestrictionsConfiguration.cs | 117 +++++ ...lder.cs => IndexableByKeyConfiguration.cs} | 19 +- .../V1/InsertRestrictionsBuilder.cs | 32 -- .../V1/InsertRestrictionsConfiguration.cs | 185 +++++++ ...pSupportedBuilder.cs => IsolationLevel.cs} | 19 +- ....cs => IsolationSupportedConfiguration.cs} | 19 +- ... => KeyAsSegmentSupportedConfiguration.cs} | 19 +- ...iaLocationUpdateSupportedConfiguration.cs} | 19 +- .../V1/ModificationQueryOptionsBuilder.cs | 32 -- .../ModificationQueryOptionsConfiguration.cs | 105 ++++ ...igationPropertyRestrictionConfiguration.cs | 241 +++++++++ .../V1/NavigationRestrictionsBuilder.cs | 32 -- .../V1/NavigationRestrictionsConfiguration.cs | 61 +++ ...tchSupportBuilder.cs => NavigationType.cs} | 27 +- .../V1/OperationRestrictionsBuilder.cs | 32 -- .../V1/OperationRestrictionsConfiguration.cs | 93 ++++ .../V1/PermissionTypeConfiguration.cs | 61 +++ ... => QuerySegmentSupportedConfiguration.cs} | 19 +- ...ReadByKeyRestrictionsTypeConfiguration.cs} | 10 +- ...er.cs => ReadRestrictionsConfiguration.cs} | 19 +- .../Capabilities/V1/ScopeTypeConfiguration.cs | 57 +++ .../Capabilities/V1/SearchExpressions.cs | 50 ++ .../V1/SearchRestrictionsBuilder.cs | 32 -- .../V1/SearchRestrictionsConfiguration.cs | 57 +++ .../V1/SelectSupportConfiguration.cs | 153 ++++++ .../V1/SkipSupportedConfiguration.cs | 45 ++ .../V1/SortRestrictionsBuilder.cs | 32 -- .../V1/SortRestrictionsConfiguration.cs | 93 ++++ ...er.cs => SupportedFormatsConfiguration.cs} | 23 +- ... SupportedMetadataFormatsConfiguration.cs} | 23 +- ...uilder.cs => TopSupportedConfiguration.cs} | 23 +- .../V1/UpdateRestrictionsBuilder.cs | 32 -- .../V1/UpdateRestrictionsConfiguration.cs | 205 ++++++++ .../V1/PrimitiveExampleValueConfiguration.cs | 45 ++ .../Vocabulary/VocabularyBuilder.cs | 458 ------------------ .../Vocabulary/VocabularyBuilder.tt | 278 ----------- .../Vocabulary/VocabularyConfiguration.cs | 297 ++++++++++++ .../Vocabulary/VocabularyConfiguration.tt | 45 +- 74 files changed, 3442 insertions(+), 1385 deletions(-) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{AcceptableEncodingsBuilder.cs => AcceptableEncodingsConfiguration.cs} (53%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{AnnotationValuesInQuerySupportedBuilder.cs => AnnotationValuesInQuerySupportedConfiguration.cs} (52%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{AsynchronousRequestsSupportedBuilder.cs => AsynchronousRequestsSupportedConfiguration.cs} (53%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{BatchContinueOnErrorSupportedBuilder.cs => BatchContinueOnErrorSupportedConfiguration.cs} (53%) create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{BatchSupportedBuilder.cs => BatchSupportedConfiguration.cs} (54%) create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{CallbackSupportedBuilder.cs => CallbackSupportedConfiguration.cs} (51%) delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{ConformanceLevelBuilder.cs => ConformanceLevelConfiguration.cs} (57%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{TopSupportedBuilder.cs => ConformanceLevelType.cs} (60%) delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{CrossJoinSupportedBuilder.cs => CrossJoinSupportedConfiguration.cs} (58%) delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{CustomQueryOptionsBuilder.cs => CustomQueryOptionsConfiguration.cs} (51%) delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{FilterFunctionsBuilder.cs => FilterFunctionsConfiguration.cs} (55%) delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{IndexableByKeyBuilder.cs => IndexableByKeyConfiguration.cs} (55%) delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{SkipSupportedBuilder.cs => IsolationLevel.cs} (59%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{IsolationSupportedBuilder.cs => IsolationSupportedConfiguration.cs} (57%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{KeyAsSegmentSupportedBuilder.cs => KeyAsSegmentSupportedConfiguration.cs} (55%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{MediaLocationUpdateSupportedBuilder.cs => MediaLocationUpdateSupportedConfiguration.cs} (54%) delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{BatchSupportBuilder.cs => NavigationType.cs} (58%) delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{QuerySegmentSupportedBuilder.cs => QuerySegmentSupportedConfiguration.cs} (55%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{ComputeSupportedBuilder.cs => ReadByKeyRestrictionsTypeConfiguration.cs} (69%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{ReadRestrictionsBuilder.cs => ReadRestrictionsConfiguration.cs} (56%) create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{SupportedFormatsBuilder.cs => SupportedFormatsConfiguration.cs} (54%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{SupportedMetadataFormatsBuilder.cs => SupportedMetadataFormatsConfiguration.cs} (51%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/{SelectSupportBuilder.cs => TopSupportedConfiguration.cs} (50%) delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsBuilder.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.cs delete mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.tt create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs index fe02d62..cc3370c 100644 --- a/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs @@ -98,8 +98,8 @@ public IEnumerable Bindings /// /// Vocabulary builders to annotate this - /// - public Dictionary VocabularyBuilders { get; } = new Dictionary(); + /// + public Dictionary VocabularyConfigurations { get; } = new Dictionary(); /// /// Gets the navigation source URL. diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj index eaab5a2..27c7f4b 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj @@ -16,14 +16,6 @@ - - - - True - True - VocabularyBuilder.tt - - @@ -41,10 +33,10 @@ True SRResources.resx - + True True - VocabularyBuilder.tt + VocabularyConfiguration.tt @@ -56,9 +48,9 @@ - + TextTemplatingFileGenerator - VocabularyBuilder.cs + VocabularyConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs similarity index 53% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs index 1421dba..420c286 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs @@ -13,16 +13,33 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// List of acceptable compression methods for ($batch) requests, e.g. gzip /// - public partial class AcceptableEncodingsBuilder : VocabularyBuilder + public partial class AcceptableEncodingsConfiguration : VocabularyConfiguration { + private readonly HashSet _acceptableEncodings = new HashSet(); + /// - /// Creates a new instance of + /// Creates a new instance of /// - public AcceptableEncodingsBuilder() + public AcceptableEncodingsConfiguration() : base("Org.OData.Capabilities.V1.AcceptableEncodings") { } + /// + /// List of acceptable compression methods for ($batch) requests, e.g. gzip + /// + /// The value(s) to set + /// + public AcceptableEncodingsConfiguration AddAcceptableEncodings(params string[] acceptableEncodings) + { + foreach (var item in acceptableEncodings) + { + _ = _acceptableEncodings.Add(item); + } + + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs similarity index 52% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs index 21b864f..e9018d2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports annotation values within system query options /// - public partial class AnnotationValuesInQuerySupportedBuilder : VocabularyBuilder + public partial class AnnotationValuesInQuerySupportedConfiguration : VocabularyConfiguration { + private bool? _annotationValuesInQuerySupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public AnnotationValuesInQuerySupportedBuilder() + public AnnotationValuesInQuerySupportedConfiguration() : base("Org.OData.Capabilities.V1.AnnotationValuesInQuerySupported") { } + /// + /// Supports annotation values within system query options + /// + /// The value to set + /// + public AnnotationValuesInQuerySupportedConfiguration HasAnnotationValuesInQuerySupported(bool annotationValuesInQuerySupported) + { + _annotationValuesInQuerySupported = annotationValuesInQuerySupported; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs similarity index 53% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs index a4f6d10..93b6125 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Service supports the asynchronous request preference /// - public partial class AsynchronousRequestsSupportedBuilder : VocabularyBuilder + public partial class AsynchronousRequestsSupportedConfiguration : VocabularyConfiguration { + private bool? _asynchronousRequestsSupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public AsynchronousRequestsSupportedBuilder() + public AsynchronousRequestsSupportedConfiguration() : base("Org.OData.Capabilities.V1.AsynchronousRequestsSupported") { } + /// + /// Service supports the asynchronous request preference + /// + /// The value to set + /// + public AsynchronousRequestsSupportedConfiguration HasAsynchronousRequestsSupported(bool asynchronousRequestsSupported) + { + _asynchronousRequestsSupported = asynchronousRequestsSupported; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs similarity index 53% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs index 9e0ddde..ca72c5d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. /// - public partial class BatchContinueOnErrorSupportedBuilder : VocabularyBuilder + public partial class BatchContinueOnErrorSupportedConfiguration : VocabularyConfiguration { + private bool? _batchContinueOnErrorSupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public BatchContinueOnErrorSupportedBuilder() + public BatchContinueOnErrorSupportedConfiguration() : base("Org.OData.Capabilities.V1.BatchContinueOnErrorSupported") { } + /// + /// Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. + /// + /// The value to set + /// + public BatchContinueOnErrorSupportedConfiguration HasBatchContinueOnErrorSupported(bool batchContinueOnErrorSupported) + { + _batchContinueOnErrorSupported = batchContinueOnErrorSupported; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs new file mode 100644 index 0000000..a9f2e7c --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Batch Support for the service + /// + public partial class BatchSupportConfiguration : VocabularyConfiguration + { + private bool? _supported; + private bool? _continueOnErrorSupported; + private bool? _referencesInRequestBodiesSupported; + private bool? _referencesAcrossChangeSetsSupported; + private bool? _etagReferencesSupported; + private bool? _requestDependencyConditionsSupported; + private readonly HashSet _supportedFormats = new HashSet(); + + /// + /// Creates a new instance of + /// + public BatchSupportConfiguration() + : base("Org.OData.Capabilities.V1.BatchSupport") + { + } + + /// + /// Service supports requests to $batch + /// + /// The value to set + /// + public BatchSupportConfiguration HasSupported(bool supported) + { + _supported = supported; + return this; + } + + /// + /// Service supports the continue on error preference + /// + /// The value to set + /// + public BatchSupportConfiguration HasContinueOnErrorSupported(bool continueOnErrorSupported) + { + _continueOnErrorSupported = continueOnErrorSupported; + return this; + } + + /// + /// Service supports Content-ID referencing in request bodies + /// + /// The value to set + /// + public BatchSupportConfiguration HasReferencesInRequestBodiesSupported(bool referencesInRequestBodiesSupported) + { + _referencesInRequestBodiesSupported = referencesInRequestBodiesSupported; + return this; + } + + /// + /// Service supports Content-ID referencing across change sets + /// + /// The value to set + /// + public BatchSupportConfiguration HasReferencesAcrossChangeSetsSupported(bool referencesAcrossChangeSetsSupported) + { + _referencesAcrossChangeSetsSupported = referencesAcrossChangeSetsSupported; + return this; + } + + /// + /// Service supports referencing Etags from previous requests + /// + /// The value to set + /// + public BatchSupportConfiguration HasEtagReferencesSupported(bool etagReferencesSupported) + { + _etagReferencesSupported = etagReferencesSupported; + return this; + } + + /// + /// Service supports the `if` member in JSON batch requests + /// + /// The value to set + /// + public BatchSupportConfiguration HasRequestDependencyConditionsSupported(bool requestDependencyConditionsSupported) + { + _requestDependencyConditionsSupported = requestDependencyConditionsSupported; + return this; + } + + /// + /// Media types of supported formats for $batch + /// + /// The value(s) to set + /// + public BatchSupportConfiguration AddSupportedFormats(params string[] supportedFormats) + { + foreach (var item in supportedFormats) + { + _ = _supportedFormats.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs similarity index 54% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs index a1b2f90..be84e94 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. /// - public partial class BatchSupportedBuilder : VocabularyBuilder + public partial class BatchSupportedConfiguration : VocabularyConfiguration { + private bool? _batchSupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public BatchSupportedBuilder() + public BatchSupportedConfiguration() : base("Org.OData.Capabilities.V1.BatchSupported") { } + /// + /// Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. + /// + /// The value to set + /// + public BatchSupportedConfiguration HasBatchSupported(bool batchSupported) + { + _batchSupported = batchSupported; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs new file mode 100644 index 0000000..b04d64a --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Summary +/// + /// + public partial class CallbackProtocolConfiguration : IRecord + { + private string _id; + private string _urlTemplate; + private string _documentationUrl; + + /// + /// Creates a new instance of + /// + public CallbackProtocolConfiguration() + { + } + + /// + /// Protocol Identifier + /// + /// The value to set + /// + public CallbackProtocol HasId(string id) + { + _id = id; + return this; + } + + /// + /// URL Template including parameters. Parameters are enclosed in curly braces {} as defined in RFC6570 + /// + /// The value to set + /// + public CallbackProtocol HasUrlTemplate(string urlTemplate) + { + _urlTemplate = urlTemplate; + return this; + } + + /// + /// Human readable description of the meaning of the URL Template parameters + /// + /// The value to set + /// + public CallbackProtocol HasDocumentationUrl(string documentationUrl) + { + _documentationUrl = documentationUrl; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs similarity index 51% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs index af695e9..7293d4b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs @@ -13,16 +13,33 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports callbacks for the specified protocols /// - public partial class CallbackSupportedBuilder : VocabularyBuilder + public partial class CallbackSupportedConfiguration : VocabularyConfiguration { + private readonly HashSet _callbackProtocols = new HashSet(); + /// - /// Creates a new instance of + /// Creates a new instance of /// - public CallbackSupportedBuilder() + public CallbackSupportedConfiguration() : base("Org.OData.Capabilities.V1.CallbackSupported") { } + /// + /// List of supported callback protocols, e.g. `http` or `wss` + /// + /// The value(s) to set + /// + public CallbackSupportedConfiguration AddCallbackProtocols(params CallbackProtocolConfiguration[] callbackProtocols) + { + foreach (var item in callbackProtocols) + { + _ = _callbackProtocols.Add(item); + } + + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingBuilder.cs deleted file mode 100644 index 833f304..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Change tracking capabilities of this service or entity set - /// - public partial class ChangeTrackingBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public ChangeTrackingBuilder() - : base("Org.OData.Capabilities.V1.ChangeTracking") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs new file mode 100644 index 0000000..8e36d32 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Change tracking capabilities of this service or entity set + /// + public partial class ChangeTrackingConfiguration : VocabularyConfiguration + { + private bool? _supported; + private readonly HashSet _filterableProperties = new HashSet(); + private readonly HashSet _expandableProperties = new HashSet(); + + /// + /// Creates a new instance of + /// + public ChangeTrackingConfiguration() + : base("Org.OData.Capabilities.V1.ChangeTracking") + { + } + + /// + /// This entity set supports the odata.track-changes preference + /// + /// The value to set + /// + public ChangeTrackingConfiguration HasSupported(bool supported) + { + _supported = supported; + return this; + } + + /// + /// Change tracking supports filters on these properties + /// + /// The value(s) to set + /// + public ChangeTrackingConfiguration AddFilterableProperties(params EdmPropertyPathExpression[] filterableProperties) + { + foreach (var item in filterableProperties) + { + _ = _filterableProperties.Add(item); + } + + return this; + } + + /// + /// Change tracking supports these properties expanded + /// + /// The value(s) to set + /// + public ChangeTrackingConfiguration AddExpandableProperties(params EdmNavigationPropertyPathExpression[] expandableProperties) + { + foreach (var item in expandableProperties) + { + _ = _expandableProperties.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsBuilder.cs deleted file mode 100644 index 942ff73..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Describes restrictions on operations applied to collection-valued structural properties - /// - public partial class CollectionPropertyRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public CollectionPropertyRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.CollectionPropertyRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs new file mode 100644 index 0000000..5d9f5ff --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Describes restrictions on operations applied to collection-valued structural properties + /// + public partial class CollectionPropertyRestrictionsConfiguration : VocabularyConfiguration + { + private readonly HashSet _collectionPropertyRestrictions = new HashSet(); + + /// + /// Creates a new instance of + /// + public CollectionPropertyRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.CollectionPropertyRestrictions") + { + } + + /// + /// Describes restrictions on operations applied to collection-valued structural properties + /// + /// The value(s) to set + /// + public CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions(params CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) + { + foreach (var item in collectionPropertyRestrictions) + { + _ = _collectionPropertyRestrictions.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs new file mode 100644 index 0000000..35e4f83 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -0,0 +1,169 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Summary +/// + /// + public partial class CollectionPropertyRestrictionsTypeConfiguration : IRecord + { + private EdmPropertyPathExpression _collectionProperty; + private readonly HashSet _filterFunctions = new HashSet(); + private FilterRestrictionsConfiguration _filterRestrictions; + private SearchRestrictionsConfiguration _searchRestrictions; + private SortRestrictionsConfiguration _sortRestrictions; + private bool? _topSupported; + private bool? _skipSupported; + private SelectSupportConfiguration _selectSupport; + private bool? _insertable; + private bool? _updatable; + private bool? _deletable; + + /// + /// Creates a new instance of + /// + public CollectionPropertyRestrictionsTypeConfiguration() + { + } + + /// + /// Restricted Collection-valued property + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasCollectionProperty(EdmPropertyPathExpression collectionProperty) + { + _collectionProperty = collectionProperty; + return this; + } + + /// + /// List of functions and operators supported in filter expressions. + /// + /// The value(s) to set + /// + public CollectionPropertyRestrictionsType AddFilterFunctions(params string[] filterFunctions) + { + foreach (var item in filterFunctions) + { + _ = _filterFunctions.Add(item); + } + + return this; + } + + /// + /// Restrictions on filter expressions + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasFilterRestrictions(FilterRestrictionsConfiguration filterRestrictions) + { + _filterRestrictions = filterRestrictions; + return this; + } + + /// + /// Restrictions on search expressions + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasSearchRestrictions(SearchRestrictionsConfiguration searchRestrictions) + { + _searchRestrictions = searchRestrictions; + return this; + } + + /// + /// Restrictions on orderby expressions + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasSortRestrictions(SortRestrictionsConfiguration sortRestrictions) + { + _sortRestrictions = sortRestrictions; + return this; + } + + /// + /// Supports $top + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasTopSupported(bool topSupported) + { + _topSupported = topSupported; + return this; + } + + /// + /// Supports $skip + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasSkipSupported(bool skipSupported) + { + _skipSupported = skipSupported; + return this; + } + + /// + /// Support for $select + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasSelectSupport(SelectSupportConfiguration selectSupport) + { + _selectSupport = selectSupport; + return this; + } + + /// + /// Members can be inserted into this collection + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasInsertable(bool insertable) + { + _insertable = insertable; + return this; + } + + /// + /// Members of this ordered collection can be updated by ordinal + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasUpdatable(bool updatable) + { + _updatable = updatable; + return this; + } + + /// + /// Members of this ordered collection can be deleted by ordinal + /// + /// The value to set + /// + public CollectionPropertyRestrictionsType HasDeletable(bool deletable) + { + _deletable = deletable; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs new file mode 100644 index 0000000..5708411 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports $compute + /// + public partial class ComputeSupportedConfiguration : VocabularyConfiguration + { + private bool? _computeSupported; + + /// + /// Creates a new instance of + /// + public ComputeSupportedConfiguration() + : base("Org.OData.Capabilities.V1.ComputeSupported") + { + } + + /// + /// Supports $compute + /// + /// The value to set + /// + public ComputeSupportedConfiguration HasComputeSupported(bool computeSupported) + { + _computeSupported = computeSupported; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs similarity index 57% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs index 701d071..575b8b9 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// The conformance level achieved by this service /// - public partial class ConformanceLevelBuilder : VocabularyBuilder + public partial class ConformanceLevelConfiguration : VocabularyConfiguration { + private ConformanceLevelType _conformanceLevel; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public ConformanceLevelBuilder() + public ConformanceLevelConfiguration() : base("Org.OData.Capabilities.V1.ConformanceLevel") { } + /// + /// The conformance level achieved by this service + /// + /// The value to set + /// + public ConformanceLevelConfiguration HasConformanceLevel(ConformanceLevelType conformanceLevel) + { + _conformanceLevel = conformanceLevel; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelType.cs similarity index 60% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelType.cs index 2525f61..29f6c35 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelType.cs @@ -11,22 +11,25 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Supports $top + /// Summary +/// /// - public partial class TopSupportedBuilder : VocabularyBuilder + public enum ConformanceLevelType { + + /// + /// Minimal conformance level + /// + Minimal, + /// - /// Creates a new instance of + /// Intermediate conformance level /// - public TopSupportedBuilder() - : base("Org.OData.Capabilities.V1.TopSupported") - { - } + Intermediate, - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } + /// + /// Advanced conformance level + /// + Advanced, } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsBuilder.cs deleted file mode 100644 index e06fa7e..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions on /$count path suffix and $count=true system query option - /// - public partial class CountRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public CountRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.CountRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs new file mode 100644 index 0000000..33404a4 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on /$count path suffix and $count=true system query option + /// + public partial class CountRestrictionsConfiguration : VocabularyConfiguration + { + private bool? _countable; + private readonly HashSet _nonCountableProperties = new HashSet(); + private readonly HashSet _nonCountableNavigationProperties = new HashSet(); + + /// + /// Creates a new instance of + /// + public CountRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.CountRestrictions") + { + } + + /// + /// Entities can be counted + /// + /// The value to set + /// + public CountRestrictionsConfiguration HasCountable(bool countable) + { + _countable = countable; + return this; + } + + /// + /// These collection properties do not allow /$count segments + /// + /// The value(s) to set + /// + public CountRestrictionsConfiguration AddNonCountableProperties(params EdmPropertyPathExpression[] nonCountableProperties) + { + foreach (var item in nonCountableProperties) + { + _ = _nonCountableProperties.Add(item); + } + + return this; + } + + /// + /// These navigation properties do not allow /$count segments + /// + /// The value(s) to set + /// + public CountRestrictionsConfiguration AddNonCountableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonCountableNavigationProperties) + { + foreach (var item in nonCountableNavigationProperties) + { + _ = _nonCountableNavigationProperties.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs similarity index 58% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs index 6439c23..87dd26c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports cross joins for the entity sets in this container /// - public partial class CrossJoinSupportedBuilder : VocabularyBuilder + public partial class CrossJoinSupportedConfiguration : VocabularyConfiguration { + private bool? _crossJoinSupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public CrossJoinSupportedBuilder() + public CrossJoinSupportedConfiguration() : base("Org.OData.Capabilities.V1.CrossJoinSupported") { } + /// + /// Supports cross joins for the entity sets in this container + /// + /// The value to set + /// + public CrossJoinSupportedConfiguration HasCrossJoinSupported(bool crossJoinSupported) + { + _crossJoinSupported = crossJoinSupported; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersBuilder.cs deleted file mode 100644 index 5c1d5d2..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Custom headers that are supported/required for the annotated resource - /// - public partial class CustomHeadersBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public CustomHeadersBuilder() - : base("Org.OData.Capabilities.V1.CustomHeaders") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs new file mode 100644 index 0000000..1527138 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Custom headers that are supported/required for the annotated resource + /// + public partial class CustomHeadersConfiguration : VocabularyConfiguration + { + private readonly HashSet _customHeaders = new HashSet(); + + /// + /// Creates a new instance of + /// + public CustomHeadersConfiguration() + : base("Org.OData.Capabilities.V1.CustomHeaders") + { + } + + /// + /// Custom headers that are supported/required for the annotated resource + /// + /// The value(s) to set + /// + public CustomHeadersConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + { + foreach (var item in customHeaders) + { + _ = _customHeaders.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs new file mode 100644 index 0000000..8076eec --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// A custom parameter is either a header or a query option + /// + public partial class CustomParameterConfiguration : IRecord + { + private string _name; + private string _description; + private string _documentationURL; + private bool? _required; + private readonly HashSet _exampleValues = new HashSet(); + + /// + /// Creates a new instance of + /// + public CustomParameterConfiguration() + { + } + + /// + /// Name of the custom parameter + /// + /// The value to set + /// + public CustomParameter HasName(string name) + { + _name = name; + return this; + } + + /// + /// Description of the custom parameter + /// + /// The value to set + /// + public CustomParameter HasDescription(string description) + { + _description = description; + return this; + } + + /// + /// URL of related documentation + /// + /// The value to set + /// + public CustomParameter HasDocumentationURL(string documentationURL) + { + _documentationURL = documentationURL; + return this; + } + + /// + /// true: parameter is required, false or not specified: parameter is optional + /// + /// The value to set + /// + public CustomParameter HasRequired(bool required) + { + _required = required; + return this; + } + + /// + /// Example values for the custom parameter + /// + /// The value(s) to set + /// + public CustomParameter AddExampleValues(params PrimitiveExampleValueConfiguration[] exampleValues) + { + foreach (var item in exampleValues) + { + _ = _exampleValues.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs similarity index 51% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs index 7461785..6b2b2d3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -13,16 +13,33 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Custom query options that are supported/required for the annotated resource /// - public partial class CustomQueryOptionsBuilder : VocabularyBuilder + public partial class CustomQueryOptionsConfiguration : VocabularyConfiguration { + private readonly HashSet _customQueryOptions = new HashSet(); + /// - /// Creates a new instance of + /// Creates a new instance of /// - public CustomQueryOptionsBuilder() + public CustomQueryOptionsConfiguration() : base("Org.OData.Capabilities.V1.CustomQueryOptions") { } + /// + /// Custom query options that are supported/required for the annotated resource + /// + /// The value(s) to set + /// + public CustomQueryOptionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + { + foreach (var item in customQueryOptions) + { + _ = _customQueryOptions.Add(item); + } + + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportBuilder.cs deleted file mode 100644 index 23619c7..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) - /// - public partial class DeepInsertSupportBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public DeepInsertSupportBuilder() - : base("Org.OData.Capabilities.V1.DeepInsertSupport") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs new file mode 100644 index 0000000..3fce28d --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + /// + public partial class DeepInsertSupportConfiguration : VocabularyConfiguration + { + private bool? _supported; + private bool? _contentIDSupported; + + /// + /// Creates a new instance of + /// + public DeepInsertSupportConfiguration() + : base("Org.OData.Capabilities.V1.DeepInsertSupport") + { + } + + /// + /// Annotation target supports deep inserts + /// + /// The value to set + /// + public DeepInsertSupportConfiguration HasSupported(bool supported) + { + _supported = supported; + return this; + } + + /// + /// Annotation target supports accepting and returning nested entities annotated with the `Core.ContentID` instance annotation. + /// + /// The value to set + /// + public DeepInsertSupportConfiguration HasContentIDSupported(bool contentIDSupported) + { + _contentIDSupported = contentIDSupported; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportBuilder.cs deleted file mode 100644 index 287686e..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) - /// - public partial class DeepUpdateSupportBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public DeepUpdateSupportBuilder() - : base("Org.OData.Capabilities.V1.DeepUpdateSupport") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs new file mode 100644 index 0000000..69404fa --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + /// + public partial class DeepUpdateSupportConfiguration : VocabularyConfiguration + { + private bool? _supported; + private bool? _contentIDSupported; + + /// + /// Creates a new instance of + /// + public DeepUpdateSupportConfiguration() + : base("Org.OData.Capabilities.V1.DeepUpdateSupport") + { + } + + /// + /// Annotation target supports deep updates + /// + /// The value to set + /// + public DeepUpdateSupportConfiguration HasSupported(bool supported) + { + _supported = supported; + return this; + } + + /// + /// Annotation target supports accepting and returning nested entities annotated with the `Core.ContentID` instance annotation. + /// + /// The value to set + /// + public DeepUpdateSupportConfiguration HasContentIDSupported(bool contentIDSupported) + { + _contentIDSupported = contentIDSupported; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsBuilder.cs deleted file mode 100644 index ce740c9..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions on delete operations - /// - public partial class DeleteRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public DeleteRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.DeleteRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs new file mode 100644 index 0000000..180d8b7 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -0,0 +1,169 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on delete operations + /// + public partial class DeleteRestrictionsConfiguration : VocabularyConfiguration + { + private bool? _deletable; + private readonly HashSet _nonDeletableNavigationProperties = new HashSet(); + private int? _maxLevels; + private bool? _filterSegmentSupported; + private bool? _typecastSegmentSupported; + private readonly HashSet _permissions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); + private string _description; + private string _longDescription; + + /// + /// Creates a new instance of + /// + public DeleteRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.DeleteRestrictions") + { + } + + /// + /// Entities can be deleted + /// + /// The value to set + /// + public DeleteRestrictionsConfiguration HasDeletable(bool deletable) + { + _deletable = deletable; + return this; + } + + /// + /// These navigation properties do not allow DeleteLink requests + /// + /// The value(s) to set + /// + public DeleteRestrictionsConfiguration AddNonDeletableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonDeletableNavigationProperties) + { + foreach (var item in nonDeletableNavigationProperties) + { + _ = _nonDeletableNavigationProperties.Add(item); + } + + return this; + } + + /// + /// The maximum number of navigation properties that can be traversed when addressing the collection to delete from or the entity to delete. A value of -1 indicates there is no restriction. + /// + /// The value to set + /// + public DeleteRestrictionsConfiguration HasMaxLevels(int maxLevels) + { + _maxLevels = maxLevels; + return this; + } + + /// + /// Members of collections can be updated via a PATCH request with a `/$filter(...)/$each` segment + /// + /// The value to set + /// + public DeleteRestrictionsConfiguration HasFilterSegmentSupported(bool filterSegmentSupported) + { + _filterSegmentSupported = filterSegmentSupported; + return this; + } + + /// + /// Members of collections can be updated via a PATCH request with a type-cast segment and a `/$each` segment + /// + /// The value to set + /// + public DeleteRestrictionsConfiguration HasTypecastSegmentSupported(bool typecastSegmentSupported) + { + _typecastSegmentSupported = typecastSegmentSupported; + return this; + } + + /// + /// Required permissions. One of the specified sets of scopes is required to perform the delete. + /// + /// The value(s) to set + /// + public DeleteRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + { + foreach (var item in permissions) + { + _ = _permissions.Add(item); + } + + return this; + } + + /// + /// Supported or required custom headers + /// + /// The value(s) to set + /// + public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + { + foreach (var item in customHeaders) + { + _ = _customHeaders.Add(item); + } + + return this; + } + + /// + /// Supported or required custom query options + /// + /// The value(s) to set + /// + public DeleteRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + { + foreach (var item in customQueryOptions) + { + _ = _customQueryOptions.Add(item); + } + + return this; + } + + /// + /// A brief description of the request + /// + /// The value to set + /// + public DeleteRestrictionsConfiguration HasDescription(string description) + { + _description = description; + return this; + } + + /// + /// A lengthy description of the request + /// + /// The value to set + /// + public DeleteRestrictionsConfiguration HasLongDescription(string longDescription) + { + _longDescription = longDescription; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsBuilder.cs deleted file mode 100644 index 4cda8cb..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions on expand expressions - /// - public partial class ExpandRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public ExpandRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.ExpandRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs new file mode 100644 index 0000000..696b598 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on expand expressions + /// + public partial class ExpandRestrictionsConfiguration : VocabularyConfiguration + { + private bool? _expandable; + private bool? _streamsExpandable; + private readonly HashSet _nonExpandableProperties = new HashSet(); + private int? _maxLevels; + + /// + /// Creates a new instance of + /// + public ExpandRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.ExpandRestrictions") + { + } + + /// + /// $expand is supported + /// + /// The value to set + /// + public ExpandRestrictionsConfiguration HasExpandable(bool expandable) + { + _expandable = expandable; + return this; + } + + /// + /// $expand is supported for stream properties and media resources + /// + /// The value to set + /// + public ExpandRestrictionsConfiguration HasStreamsExpandable(bool streamsExpandable) + { + _streamsExpandable = streamsExpandable; + return this; + } + + /// + /// These properties cannot be used in expand expressions + /// + /// The value(s) to set + /// + public ExpandRestrictionsConfiguration AddNonExpandableProperties(params EdmNavigationPropertyPathExpression[] nonExpandableProperties) + { + foreach (var item in nonExpandableProperties) + { + _ = _nonExpandableProperties.Add(item); + } + + return this; + } + + /// + /// The maximum number of levels that can be expanded in a expand expression. A value of -1 indicates there is no restriction. + /// + /// The value to set + /// + public ExpandRestrictionsConfiguration HasMaxLevels(int maxLevels) + { + _maxLevels = maxLevels; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs new file mode 100644 index 0000000..72a398b --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Summary +/// + /// + public partial class FilterExpressionRestrictionTypeConfiguration : IRecord + { + private EdmPropertyPathExpression _property; + private string _allowedExpressions; + + /// + /// Creates a new instance of + /// + public FilterExpressionRestrictionTypeConfiguration() + { + } + + /// + /// Path to the restricted property + /// + /// The value to set + /// + public FilterExpressionRestrictionType HasProperty(EdmPropertyPathExpression property) + { + _property = property; + return this; + } + + /// + /// Allowed subset of expressions + /// + /// The value to set + /// + public FilterExpressionRestrictionType HasAllowedExpressions(string allowedExpressions) + { + _allowedExpressions = allowedExpressions; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs similarity index 55% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs index 0070668..1318e22 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs @@ -13,16 +13,33 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// List of functions and operators supported in filter expressions. /// - public partial class FilterFunctionsBuilder : VocabularyBuilder + public partial class FilterFunctionsConfiguration : VocabularyConfiguration { + private readonly HashSet _filterFunctions = new HashSet(); + /// - /// Creates a new instance of + /// Creates a new instance of /// - public FilterFunctionsBuilder() + public FilterFunctionsConfiguration() : base("Org.OData.Capabilities.V1.FilterFunctions") { } + /// + /// List of functions and operators supported in filter expressions. + /// + /// The value(s) to set + /// + public FilterFunctionsConfiguration AddFilterFunctions(params string[] filterFunctions) + { + foreach (var item in filterFunctions) + { + _ = _filterFunctions.Add(item); + } + + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsBuilder.cs deleted file mode 100644 index 52b792e..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions on filter expressions - /// - public partial class FilterRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public FilterRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.FilterRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs new file mode 100644 index 0000000..9df88d7 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on filter expressions + /// + public partial class FilterRestrictionsConfiguration : VocabularyConfiguration + { + private bool? _filterable; + private bool? _requiresFilter; + private readonly HashSet _requiredProperties = new HashSet(); + private readonly HashSet _nonFilterableProperties = new HashSet(); + private readonly HashSet _filterExpressionRestrictions = new HashSet(); + private int? _maxLevels; + + /// + /// Creates a new instance of + /// + public FilterRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.FilterRestrictions") + { + } + + /// + /// $filter is supported + /// + /// The value to set + /// + public FilterRestrictionsConfiguration HasFilterable(bool filterable) + { + _filterable = filterable; + return this; + } + + /// + /// $filter is required + /// + /// The value to set + /// + public FilterRestrictionsConfiguration HasRequiresFilter(bool requiresFilter) + { + _requiresFilter = requiresFilter; + return this; + } + + /// + /// These properties must be specified in the $filter clause (properties of derived types are not allowed here) + /// + /// The value(s) to set + /// + public FilterRestrictionsConfiguration AddRequiredProperties(params EdmPropertyPathExpression[] requiredProperties) + { + foreach (var item in requiredProperties) + { + _ = _requiredProperties.Add(item); + } + + return this; + } + + /// + /// These structural properties cannot be used in filter expressions + /// + /// The value(s) to set + /// + public FilterRestrictionsConfiguration AddNonFilterableProperties(params EdmPropertyPathExpression[] nonFilterableProperties) + { + foreach (var item in nonFilterableProperties) + { + _ = _nonFilterableProperties.Add(item); + } + + return this; + } + + /// + /// These properties only allow a subset of filter expressions. A valid filter expression for a single property can be enclosed in parentheses and combined by `and` with valid expressions for other properties. + /// + /// The value(s) to set + /// + public FilterRestrictionsConfiguration AddFilterExpressionRestrictions(params FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) + { + foreach (var item in filterExpressionRestrictions) + { + _ = _filterExpressionRestrictions.Add(item); + } + + return this; + } + + /// + /// The maximum number of levels (including recursion) that can be traversed in a filter expression. A value of -1 indicates there is no restriction. + /// + /// The value to set + /// + public FilterRestrictionsConfiguration HasMaxLevels(int maxLevels) + { + _maxLevels = maxLevels; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs similarity index 55% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs index dce4542..3682359 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports key values according to OData URL conventions /// - public partial class IndexableByKeyBuilder : VocabularyBuilder + public partial class IndexableByKeyConfiguration : VocabularyConfiguration { + private bool? _indexableByKey; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public IndexableByKeyBuilder() + public IndexableByKeyConfiguration() : base("Org.OData.Capabilities.V1.IndexableByKey") { } + /// + /// Supports key values according to OData URL conventions + /// + /// The value to set + /// + public IndexableByKeyConfiguration HasIndexableByKey(bool indexableByKey) + { + _indexableByKey = indexableByKey; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsBuilder.cs deleted file mode 100644 index abd3243..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions on insert operations - /// - public partial class InsertRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public InsertRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.InsertRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs new file mode 100644 index 0000000..035f403 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -0,0 +1,185 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on insert operations + /// + public partial class InsertRestrictionsConfiguration : VocabularyConfiguration + { + private bool? _insertable; + private readonly HashSet _nonInsertableProperties = new HashSet(); + private readonly HashSet _nonInsertableNavigationProperties = new HashSet(); + private int? _maxLevels; + private bool? _typecastSegmentSupported; + private readonly HashSet _permissions = new HashSet(); + private ModificationQueryOptionsConfiguration _queryOptions; + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); + private string _description; + private string _longDescription; + + /// + /// Creates a new instance of + /// + public InsertRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.InsertRestrictions") + { + } + + /// + /// Entities can be inserted + /// + /// The value to set + /// + public InsertRestrictionsConfiguration HasInsertable(bool insertable) + { + _insertable = insertable; + return this; + } + + /// + /// These structural properties cannot be specified on insert + /// + /// The value(s) to set + /// + public InsertRestrictionsConfiguration AddNonInsertableProperties(params EdmPropertyPathExpression[] nonInsertableProperties) + { + foreach (var item in nonInsertableProperties) + { + _ = _nonInsertableProperties.Add(item); + } + + return this; + } + + /// + /// These navigation properties do not allow deep inserts + /// + /// The value(s) to set + /// + public InsertRestrictionsConfiguration AddNonInsertableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonInsertableNavigationProperties) + { + foreach (var item in nonInsertableNavigationProperties) + { + _ = _nonInsertableNavigationProperties.Add(item); + } + + return this; + } + + /// + /// The maximum number of navigation properties that can be traversed when addressing the collection to insert into. A value of -1 indicates there is no restriction. + /// + /// The value to set + /// + public InsertRestrictionsConfiguration HasMaxLevels(int maxLevels) + { + _maxLevels = maxLevels; + return this; + } + + /// + /// Entities of a specific derived type can be created by specifying a type-cast segment + /// + /// The value to set + /// + public InsertRestrictionsConfiguration HasTypecastSegmentSupported(bool typecastSegmentSupported) + { + _typecastSegmentSupported = typecastSegmentSupported; + return this; + } + + /// + /// Required permissions. One of the specified sets of scopes is required to perform the insert. + /// + /// The value(s) to set + /// + public InsertRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + { + foreach (var item in permissions) + { + _ = _permissions.Add(item); + } + + return this; + } + + /// + /// Support for query options with insert requests + /// + /// The value to set + /// + public InsertRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsConfiguration queryOptions) + { + _queryOptions = queryOptions; + return this; + } + + /// + /// Supported or required custom headers + /// + /// The value(s) to set + /// + public InsertRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + { + foreach (var item in customHeaders) + { + _ = _customHeaders.Add(item); + } + + return this; + } + + /// + /// Supported or required custom query options + /// + /// The value(s) to set + /// + public InsertRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + { + foreach (var item in customQueryOptions) + { + _ = _customQueryOptions.Add(item); + } + + return this; + } + + /// + /// A brief description of the request + /// + /// The value to set + /// + public InsertRestrictionsConfiguration HasDescription(string description) + { + _description = description; + return this; + } + + /// + /// A lengthy description of the request + /// + /// The value to set + /// + public InsertRestrictionsConfiguration HasLongDescription(string longDescription) + { + _longDescription = longDescription; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationLevel.cs similarity index 59% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationLevel.cs index 18eb2c8..6299cb2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationLevel.cs @@ -11,22 +11,15 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Supports $skip + /// Summary +/// /// - public partial class SkipSupportedBuilder : VocabularyBuilder + public enum IsolationLevel { + /// - /// Creates a new instance of + /// All data returned for a request, including multiple requests within a batch or results retrieved across multiple pages, will be consistent as of a single point in time /// - public SkipSupportedBuilder() - : base("Org.OData.Capabilities.V1.SkipSupported") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } + Snapshot, } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs similarity index 57% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs index 0cf2f70..82ede9d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supported odata.isolation levels /// - public partial class IsolationSupportedBuilder : VocabularyBuilder + public partial class IsolationSupportedConfiguration : VocabularyConfiguration { + private IsolationLevel _isolationSupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public IsolationSupportedBuilder() + public IsolationSupportedConfiguration() : base("Org.OData.Capabilities.V1.IsolationSupported") { } + /// + /// Supported odata.isolation levels + /// + /// The value to set + /// + public IsolationSupportedConfiguration HasIsolationSupported(IsolationLevel isolationSupported) + { + _isolationSupported = isolationSupported; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs similarity index 55% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs index 89debc5..037cf92 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection /// - public partial class KeyAsSegmentSupportedBuilder : VocabularyBuilder + public partial class KeyAsSegmentSupportedConfiguration : VocabularyConfiguration { + private bool? _keyAsSegmentSupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public KeyAsSegmentSupportedBuilder() + public KeyAsSegmentSupportedConfiguration() : base("Org.OData.Capabilities.V1.KeyAsSegmentSupported") { } + /// + /// Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection + /// + /// The value to set + /// + public KeyAsSegmentSupportedConfiguration HasKeyAsSegmentSupported(bool keyAsSegmentSupported) + { + _keyAsSegmentSupported = keyAsSegmentSupported; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs similarity index 54% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs index c0a63c4..3264efb 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Stream property supports update of its media edit URL and/or media read URL /// - public partial class MediaLocationUpdateSupportedBuilder : VocabularyBuilder + public partial class MediaLocationUpdateSupportedConfiguration : VocabularyConfiguration { + private bool? _mediaLocationUpdateSupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public MediaLocationUpdateSupportedBuilder() + public MediaLocationUpdateSupportedConfiguration() : base("Org.OData.Capabilities.V1.MediaLocationUpdateSupported") { } + /// + /// Stream property supports update of its media edit URL and/or media read URL + /// + /// The value to set + /// + public MediaLocationUpdateSupportedConfiguration HasMediaLocationUpdateSupported(bool mediaLocationUpdateSupported) + { + _mediaLocationUpdateSupported = mediaLocationUpdateSupported; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsBuilder.cs deleted file mode 100644 index 3e4cb47..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Support for query options with modification requests (insert, update, action invocation) - /// - public partial class ModificationQueryOptionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public ModificationQueryOptionsBuilder() - : base("Org.OData.Capabilities.V1.ModificationQueryOptions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs new file mode 100644 index 0000000..f05acf5 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Support for query options with modification requests (insert, update, action invocation) + /// + public partial class ModificationQueryOptionsConfiguration : VocabularyConfiguration + { + private bool? _expandSupported; + private bool? _selectSupported; + private bool? _computeSupported; + private bool? _filterSupported; + private bool? _searchSupported; + private bool? _sortSupported; + + /// + /// Creates a new instance of + /// + public ModificationQueryOptionsConfiguration() + : base("Org.OData.Capabilities.V1.ModificationQueryOptions") + { + } + + /// + /// Supports $expand with modification requests + /// + /// The value to set + /// + public ModificationQueryOptionsConfiguration HasExpandSupported(bool expandSupported) + { + _expandSupported = expandSupported; + return this; + } + + /// + /// Supports $select with modification requests + /// + /// The value to set + /// + public ModificationQueryOptionsConfiguration HasSelectSupported(bool selectSupported) + { + _selectSupported = selectSupported; + return this; + } + + /// + /// Supports $compute with modification requests + /// + /// The value to set + /// + public ModificationQueryOptionsConfiguration HasComputeSupported(bool computeSupported) + { + _computeSupported = computeSupported; + return this; + } + + /// + /// Supports $filter with modification requests + /// + /// The value to set + /// + public ModificationQueryOptionsConfiguration HasFilterSupported(bool filterSupported) + { + _filterSupported = filterSupported; + return this; + } + + /// + /// Supports $search with modification requests + /// + /// The value to set + /// + public ModificationQueryOptionsConfiguration HasSearchSupported(bool searchSupported) + { + _searchSupported = searchSupported; + return this; + } + + /// + /// Supports $orderby with modification requests + /// + /// The value to set + /// + public ModificationQueryOptionsConfiguration HasSortSupported(bool sortSupported) + { + _sortSupported = sortSupported; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs new file mode 100644 index 0000000..3bc3781 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -0,0 +1,241 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Summary +/// + /// + public partial class NavigationPropertyRestrictionConfiguration : IRecord + { + private EdmNavigationPropertyPathExpression _navigationProperty; + private NavigationType _navigability; + private readonly HashSet _filterFunctions = new HashSet(); + private FilterRestrictionsConfiguration _filterRestrictions; + private SearchRestrictionsConfiguration _searchRestrictions; + private SortRestrictionsConfiguration _sortRestrictions; + private bool? _topSupported; + private bool? _skipSupported; + private SelectSupportConfiguration _selectSupport; + private bool? _indexableByKey; + private InsertRestrictionsConfiguration _insertRestrictions; + private DeepInsertSupportConfiguration _deepInsertSupport; + private UpdateRestrictionsConfiguration _updateRestrictions; + private DeepUpdateSupportConfiguration _deepUpdateSupport; + private DeleteRestrictionsConfiguration _deleteRestrictions; + private bool? _optimisticConcurrencyControl; + private ReadRestrictionsConfiguration _readRestrictions; + + /// + /// Creates a new instance of + /// + public NavigationPropertyRestrictionConfiguration() + { + } + + /// + /// Navigation properties can be navigated + /// + /// The value to set + /// + public NavigationPropertyRestriction HasNavigationProperty(EdmNavigationPropertyPathExpression navigationProperty) + { + _navigationProperty = navigationProperty; + return this; + } + + /// + /// Supported navigability of this navigation property. + /// + /// The value to set + /// + public NavigationPropertyRestriction HasNavigability(NavigationType navigability) + { + _navigability = navigability; + return this; + } + + /// + /// List of functions and operators supported in filter expressions. + /// + /// The value(s) to set + /// + public NavigationPropertyRestriction AddFilterFunctions(params string[] filterFunctions) + { + foreach (var item in filterFunctions) + { + _ = _filterFunctions.Add(item); + } + + return this; + } + + /// + /// Restrictions on filter expressions + /// + /// The value to set + /// + public NavigationPropertyRestriction HasFilterRestrictions(FilterRestrictionsConfiguration filterRestrictions) + { + _filterRestrictions = filterRestrictions; + return this; + } + + /// + /// Restrictions on search expressions + /// + /// The value to set + /// + public NavigationPropertyRestriction HasSearchRestrictions(SearchRestrictionsConfiguration searchRestrictions) + { + _searchRestrictions = searchRestrictions; + return this; + } + + /// + /// Restrictions on orderby expressions + /// + /// The value to set + /// + public NavigationPropertyRestriction HasSortRestrictions(SortRestrictionsConfiguration sortRestrictions) + { + _sortRestrictions = sortRestrictions; + return this; + } + + /// + /// Supports $top + /// + /// The value to set + /// + public NavigationPropertyRestriction HasTopSupported(bool topSupported) + { + _topSupported = topSupported; + return this; + } + + /// + /// Supports $skip + /// + /// The value to set + /// + public NavigationPropertyRestriction HasSkipSupported(bool skipSupported) + { + _skipSupported = skipSupported; + return this; + } + + /// + /// Support for $select + /// + /// The value to set + /// + public NavigationPropertyRestriction HasSelectSupport(SelectSupportConfiguration selectSupport) + { + _selectSupport = selectSupport; + return this; + } + + /// + /// Supports key values according to OData URL conventions + /// + /// The value to set + /// + public NavigationPropertyRestriction HasIndexableByKey(bool indexableByKey) + { + _indexableByKey = indexableByKey; + return this; + } + + /// + /// Restrictions on insert operations + /// + /// The value to set + /// + public NavigationPropertyRestriction HasInsertRestrictions(InsertRestrictionsConfiguration insertRestrictions) + { + _insertRestrictions = insertRestrictions; + return this; + } + + /// + /// Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + /// + /// The value to set + /// + public NavigationPropertyRestriction HasDeepInsertSupport(DeepInsertSupportConfiguration deepInsertSupport) + { + _deepInsertSupport = deepInsertSupport; + return this; + } + + /// + /// Restrictions on update operations + /// + /// The value to set + /// + public NavigationPropertyRestriction HasUpdateRestrictions(UpdateRestrictionsConfiguration updateRestrictions) + { + _updateRestrictions = updateRestrictions; + return this; + } + + /// + /// Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + /// + /// The value to set + /// + public NavigationPropertyRestriction HasDeepUpdateSupport(DeepUpdateSupportConfiguration deepUpdateSupport) + { + _deepUpdateSupport = deepUpdateSupport; + return this; + } + + /// + /// Restrictions on delete operations + /// + /// The value to set + /// + public NavigationPropertyRestriction HasDeleteRestrictions(DeleteRestrictionsConfiguration deleteRestrictions) + { + _deleteRestrictions = deleteRestrictions; + return this; + } + + /// + /// Data modification (including insert) along this navigation property requires the use of ETags + /// + /// The value to set + /// + public NavigationPropertyRestriction HasOptimisticConcurrencyControl(bool optimisticConcurrencyControl) + { + _optimisticConcurrencyControl = optimisticConcurrencyControl; + return this; + } + + /// + /// Restrictions for retrieving entities + /// + /// The value to set + /// + public NavigationPropertyRestriction HasReadRestrictions(ReadRestrictionsConfiguration readRestrictions) + { + _readRestrictions = readRestrictions; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsBuilder.cs deleted file mode 100644 index eca959e..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions on navigating properties according to OData URL conventions - /// - public partial class NavigationRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public NavigationRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.NavigationRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs new file mode 100644 index 0000000..2f4910b --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on navigating properties according to OData URL conventions + /// + public partial class NavigationRestrictionsConfiguration : VocabularyConfiguration + { + private NavigationType _navigability; + private readonly HashSet _restrictedProperties = new HashSet(); + + /// + /// Creates a new instance of + /// + public NavigationRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.NavigationRestrictions") + { + } + + /// + /// Default navigability for all navigation properties of the annotation target. Individual navigation properties can override this value via `RestrictedProperties/Navigability`. + /// + /// The value to set + /// + public NavigationRestrictionsConfiguration HasNavigability(NavigationType navigability) + { + _navigability = navigability; + return this; + } + + /// + /// List of navigation properties with restrictions + /// + /// The value(s) to set + /// + public NavigationRestrictionsConfiguration AddRestrictedProperties(params NavigationPropertyRestrictionConfiguration[] restrictedProperties) + { + foreach (var item in restrictedProperties) + { + _ = _restrictedProperties.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationType.cs similarity index 58% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationType.cs index 2d46aa7..f86e57d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationType.cs @@ -11,22 +11,25 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Batch Support for the service + /// Summary +/// /// - public partial class BatchSupportBuilder : VocabularyBuilder + public enum NavigationType { + + /// + /// Navigation properties can be recursively navigated + /// + Recursive, + /// - /// Creates a new instance of + /// Navigation properties can be navigated to a single level /// - public BatchSupportBuilder() - : base("Org.OData.Capabilities.V1.BatchSupport") - { - } + Single, - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } + /// + /// Navigation properties are not navigable + /// + None, } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsBuilder.cs deleted file mode 100644 index c98b426..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions for function or action operation - /// - public partial class OperationRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public OperationRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.OperationRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs new file mode 100644 index 0000000..44aae2b --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -0,0 +1,93 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions for function or action operation + /// + public partial class OperationRestrictionsConfiguration : VocabularyConfiguration + { + private bool? _filterSegmentSupported; + private readonly HashSet _permissions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); + + /// + /// Creates a new instance of + /// + public OperationRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.OperationRestrictions") + { + } + + /// + /// Bound action or function can be invoked on a collection-valued binding parameter path with a `/$filter(...)` segment + /// + /// The value to set + /// + public OperationRestrictionsConfiguration HasFilterSegmentSupported(bool filterSegmentSupported) + { + _filterSegmentSupported = filterSegmentSupported; + return this; + } + + /// + /// Required permissions. One of the specified sets of scopes is required to invoke an action or function + /// + /// The value(s) to set + /// + public OperationRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + { + foreach (var item in permissions) + { + _ = _permissions.Add(item); + } + + return this; + } + + /// + /// Supported or required custom headers + /// + /// The value(s) to set + /// + public OperationRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + { + foreach (var item in customHeaders) + { + _ = _customHeaders.Add(item); + } + + return this; + } + + /// + /// Supported or required custom query options + /// + /// The value(s) to set + /// + public OperationRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + { + foreach (var item in customQueryOptions) + { + _ = _customQueryOptions.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs new file mode 100644 index 0000000..cef16b6 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Summary +/// + /// + public partial class PermissionTypeConfiguration : IRecord + { + private string _schemeName; + private readonly HashSet _scopes = new HashSet(); + + /// + /// Creates a new instance of + /// + public PermissionTypeConfiguration() + { + } + + /// + /// Authorization flow scheme name + /// + /// The value to set + /// + public PermissionType HasSchemeName(string schemeName) + { + _schemeName = schemeName; + return this; + } + + /// + /// List of scopes that can provide access to the resource + /// + /// The value(s) to set + /// + public PermissionType AddScopes(params ScopeTypeConfiguration[] scopes) + { + foreach (var item in scopes) + { + _ = _scopes.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs similarity index 55% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs index dcc870b..4b06131 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) /// - public partial class QuerySegmentSupportedBuilder : VocabularyBuilder + public partial class QuerySegmentSupportedConfiguration : VocabularyConfiguration { + private bool? _querySegmentSupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public QuerySegmentSupportedBuilder() + public QuerySegmentSupportedConfiguration() : base("Org.OData.Capabilities.V1.QuerySegmentSupported") { } + /// + /// Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) + /// + /// The value to set + /// + public QuerySegmentSupportedConfiguration HasQuerySegmentSupported(bool querySegmentSupported) + { + _querySegmentSupported = querySegmentSupported; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs similarity index 69% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index ce0eb7f..d357d9e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -11,15 +11,15 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Supports $compute + /// Restrictions for retrieving an entity by key /// - public partial class ComputeSupportedBuilder : VocabularyBuilder + public partial class ReadByKeyRestrictionsTypeConfiguration : IRecord { + /// - /// Creates a new instance of + /// Creates a new instance of /// - public ComputeSupportedBuilder() - : base("Org.OData.Capabilities.V1.ComputeSupported") + public ReadByKeyRestrictionsTypeConfiguration() { } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs similarity index 56% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs index a301d89..c6c14dc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -13,16 +13,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions for retrieving a collection of entities, retrieving a singleton instance. /// - public partial class ReadRestrictionsBuilder : VocabularyBuilder + public partial class ReadRestrictionsConfiguration : VocabularyConfiguration { + private ReadByKeyRestrictionsTypeConfiguration _readByKeyRestrictions; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public ReadRestrictionsBuilder() + public ReadRestrictionsConfiguration() : base("Org.OData.Capabilities.V1.ReadRestrictions") { } + /// + /// Restrictions for retrieving an entity by key + /// + /// The value to set + /// + public ReadRestrictionsConfiguration HasReadByKeyRestrictions(ReadByKeyRestrictionsTypeConfiguration readByKeyRestrictions) + { + _readByKeyRestrictions = readByKeyRestrictions; + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs new file mode 100644 index 0000000..88966fa --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Summary +/// + /// + public partial class ScopeTypeConfiguration : IRecord + { + private string _scope; + private string _restrictedProperties; + + /// + /// Creates a new instance of + /// + public ScopeTypeConfiguration() + { + } + + /// + /// Name of the scope. + /// + /// The value to set + /// + public ScopeType HasScope(string scope) + { + _scope = scope; + return this; + } + + /// + /// Comma-separated string value of all properties that will be included or excluded when using the scope. + /// + /// The value to set + /// + public ScopeType HasRestrictedProperties(string restrictedProperties) + { + _restrictedProperties = restrictedProperties; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs new file mode 100644 index 0000000..698273a --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Summary +/// + /// + public enum SearchExpressions + { + + /// + /// Single search term + /// + none, + + /// + /// Multiple search terms separated by `AND` + /// + AND, + + /// + /// Multiple search terms separated by `OR` + /// + OR, + + /// + /// Search terms preceded by `NOT` + /// + NOT, + + /// + /// Search phrases enclosed in double quotes + /// + phrase, + + /// + /// Precedence grouping of search expressions with parentheses + /// + group, + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsBuilder.cs deleted file mode 100644 index 6e32008..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions on search expressions - /// - public partial class SearchRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public SearchRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.SearchRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs new file mode 100644 index 0000000..b2ab1f3 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on search expressions + /// + public partial class SearchRestrictionsConfiguration : VocabularyConfiguration + { + private bool? _searchable; + private SearchExpressions _unsupportedExpressions; + + /// + /// Creates a new instance of + /// + public SearchRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.SearchRestrictions") + { + } + + /// + /// $search is supported + /// + /// The value to set + /// + public SearchRestrictionsConfiguration HasSearchable(bool searchable) + { + _searchable = searchable; + return this; + } + + /// + /// Expressions not supported in $search + /// + /// The value to set + /// + public SearchRestrictionsConfiguration HasUnsupportedExpressions(SearchExpressions unsupportedExpressions) + { + _unsupportedExpressions = unsupportedExpressions; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs new file mode 100644 index 0000000..115c729 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Support for $select and nested query options within $select + /// + public partial class SelectSupportConfiguration : VocabularyConfiguration + { + private bool? _supported; + private bool? _instanceAnnotationsSupported; + private bool? _expandable; + private bool? _filterable; + private bool? _searchable; + private bool? _topSupported; + private bool? _skipSupported; + private bool? _computeSupported; + private bool? _countable; + private bool? _sortable; + + /// + /// Creates a new instance of + /// + public SelectSupportConfiguration() + : base("Org.OData.Capabilities.V1.SelectSupport") + { + } + + /// + /// Supports $select + /// + /// The value to set + /// + public SelectSupportConfiguration HasSupported(bool supported) + { + _supported = supported; + return this; + } + + /// + /// Supports instance annotations in $select list + /// + /// The value to set + /// + public SelectSupportConfiguration HasInstanceAnnotationsSupported(bool instanceAnnotationsSupported) + { + _instanceAnnotationsSupported = instanceAnnotationsSupported; + return this; + } + + /// + /// $expand within $select is supported + /// + /// The value to set + /// + public SelectSupportConfiguration HasExpandable(bool expandable) + { + _expandable = expandable; + return this; + } + + /// + /// $filter within $select is supported + /// + /// The value to set + /// + public SelectSupportConfiguration HasFilterable(bool filterable) + { + _filterable = filterable; + return this; + } + + /// + /// $search within $select is supported + /// + /// The value to set + /// + public SelectSupportConfiguration HasSearchable(bool searchable) + { + _searchable = searchable; + return this; + } + + /// + /// $top within $select is supported + /// + /// The value to set + /// + public SelectSupportConfiguration HasTopSupported(bool topSupported) + { + _topSupported = topSupported; + return this; + } + + /// + /// $skip within $select is supported + /// + /// The value to set + /// + public SelectSupportConfiguration HasSkipSupported(bool skipSupported) + { + _skipSupported = skipSupported; + return this; + } + + /// + /// $compute within $select is supported + /// + /// The value to set + /// + public SelectSupportConfiguration HasComputeSupported(bool computeSupported) + { + _computeSupported = computeSupported; + return this; + } + + /// + /// $count within $select is supported + /// + /// The value to set + /// + public SelectSupportConfiguration HasCountable(bool countable) + { + _countable = countable; + return this; + } + + /// + /// $orderby within $select is supported + /// + /// The value to set + /// + public SelectSupportConfiguration HasSortable(bool sortable) + { + _sortable = sortable; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs new file mode 100644 index 0000000..037292b --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Supports $skip + /// + public partial class SkipSupportedConfiguration : VocabularyConfiguration + { + private bool? _skipSupported; + + /// + /// Creates a new instance of + /// + public SkipSupportedConfiguration() + : base("Org.OData.Capabilities.V1.SkipSupported") + { + } + + /// + /// Supports $skip + /// + /// The value to set + /// + public SkipSupportedConfiguration HasSkipSupported(bool skipSupported) + { + _skipSupported = skipSupported; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsBuilder.cs deleted file mode 100644 index 05cc997..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions on orderby expressions - /// - public partial class SortRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public SortRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.SortRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs new file mode 100644 index 0000000..9a2e3ec --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs @@ -0,0 +1,93 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on orderby expressions + /// + public partial class SortRestrictionsConfiguration : VocabularyConfiguration + { + private bool? _sortable; + private readonly HashSet _ascendingOnlyProperties = new HashSet(); + private readonly HashSet _descendingOnlyProperties = new HashSet(); + private readonly HashSet _nonSortableProperties = new HashSet(); + + /// + /// Creates a new instance of + /// + public SortRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.SortRestrictions") + { + } + + /// + /// $orderby is supported + /// + /// The value to set + /// + public SortRestrictionsConfiguration HasSortable(bool sortable) + { + _sortable = sortable; + return this; + } + + /// + /// These properties can only be used for sorting in Ascending order + /// + /// The value(s) to set + /// + public SortRestrictionsConfiguration AddAscendingOnlyProperties(params EdmPropertyPathExpression[] ascendingOnlyProperties) + { + foreach (var item in ascendingOnlyProperties) + { + _ = _ascendingOnlyProperties.Add(item); + } + + return this; + } + + /// + /// These properties can only be used for sorting in Descending order + /// + /// The value(s) to set + /// + public SortRestrictionsConfiguration AddDescendingOnlyProperties(params EdmPropertyPathExpression[] descendingOnlyProperties) + { + foreach (var item in descendingOnlyProperties) + { + _ = _descendingOnlyProperties.Add(item); + } + + return this; + } + + /// + /// These structural properties cannot be used in orderby expressions + /// + /// The value(s) to set + /// + public SortRestrictionsConfiguration AddNonSortableProperties(params EdmPropertyPathExpression[] nonSortableProperties) + { + foreach (var item in nonSortableProperties) + { + _ = _nonSortableProperties.Add(item); + } + + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs similarity index 54% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs index 2351980..9fe3e10 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs @@ -13,16 +13,33 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Media types of supported formats, including format parameters /// - public partial class SupportedFormatsBuilder : VocabularyBuilder + public partial class SupportedFormatsConfiguration : VocabularyConfiguration { + private readonly HashSet _supportedFormats = new HashSet(); + /// - /// Creates a new instance of + /// Creates a new instance of /// - public SupportedFormatsBuilder() + public SupportedFormatsConfiguration() : base("Org.OData.Capabilities.V1.SupportedFormats") { } + /// + /// Media types of supported formats, including format parameters + /// + /// The value(s) to set + /// + public SupportedFormatsConfiguration AddSupportedFormats(params string[] supportedFormats) + { + foreach (var item in supportedFormats) + { + _ = _supportedFormats.Add(item); + } + + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs similarity index 51% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs index 43541d3..813a436 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs @@ -13,16 +13,33 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Media types of supported formats for $metadata, including format parameters /// - public partial class SupportedMetadataFormatsBuilder : VocabularyBuilder + public partial class SupportedMetadataFormatsConfiguration : VocabularyConfiguration { + private readonly HashSet _supportedMetadataFormats = new HashSet(); + /// - /// Creates a new instance of + /// Creates a new instance of /// - public SupportedMetadataFormatsBuilder() + public SupportedMetadataFormatsConfiguration() : base("Org.OData.Capabilities.V1.SupportedMetadataFormats") { } + /// + /// Media types of supported formats for $metadata, including format parameters + /// + /// The value(s) to set + /// + public SupportedMetadataFormatsConfiguration AddSupportedMetadataFormats(params string[] supportedMetadataFormats) + { + foreach (var item in supportedMetadataFormats) + { + _ = _supportedMetadataFormats.Add(item); + } + + return this; + } + /// public override IEdmExpression ToEdmExpression() { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs similarity index 50% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportBuilder.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs index 87c785a..2564db6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportBuilder.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs @@ -11,16 +11,29 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Support for $select and nested query options within $select + /// Supports $top /// - public partial class SelectSupportBuilder : VocabularyBuilder + public partial class TopSupportedConfiguration : VocabularyConfiguration { + private bool? _topSupported; + /// - /// Creates a new instance of + /// Creates a new instance of /// - public SelectSupportBuilder() - : base("Org.OData.Capabilities.V1.SelectSupport") + public TopSupportedConfiguration() + : base("Org.OData.Capabilities.V1.TopSupported") + { + } + + /// + /// Supports $top + /// + /// The value to set + /// + public TopSupportedConfiguration HasTopSupported(bool topSupported) { + _topSupported = topSupported; + return this; } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsBuilder.cs deleted file mode 100644 index bff8f0f..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsBuilder.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -namespace Microsoft.OData.ModelBuilder.Capabilities.V1 -{ - /// - /// Restrictions on update operations - /// - public partial class UpdateRestrictionsBuilder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public UpdateRestrictionsBuilder() - : base("Org.OData.Capabilities.V1.UpdateRestrictions") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs new file mode 100644 index 0000000..8f110b7 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -0,0 +1,205 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Capabilities.V1 +{ + /// + /// Restrictions on update operations + /// + public partial class UpdateRestrictionsConfiguration : VocabularyConfiguration + { + private bool? _updatable; + private bool? _upsertable; + private bool? _deltaUpdateSupported; + private bool? _filterSegmentSupported; + private bool? _typecastSegmentSupported; + private readonly HashSet _nonUpdatableNavigationProperties = new HashSet(); + private int? _maxLevels; + private readonly HashSet _permissions = new HashSet(); + private ModificationQueryOptionsConfiguration _queryOptions; + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); + private string _description; + private string _longDescription; + + /// + /// Creates a new instance of + /// + public UpdateRestrictionsConfiguration() + : base("Org.OData.Capabilities.V1.UpdateRestrictions") + { + } + + /// + /// Entities can be updated + /// + /// The value to set + /// + public UpdateRestrictionsConfiguration HasUpdatable(bool updatable) + { + _updatable = updatable; + return this; + } + + /// + /// Entities can be upserted + /// + /// The value to set + /// + public UpdateRestrictionsConfiguration HasUpsertable(bool upsertable) + { + _upsertable = upsertable; + return this; + } + + /// + /// Entities can be inserted, updated, and deleted via a PATCH request with a delta payload + /// + /// The value to set + /// + public UpdateRestrictionsConfiguration HasDeltaUpdateSupported(bool deltaUpdateSupported) + { + _deltaUpdateSupported = deltaUpdateSupported; + return this; + } + + /// + /// Members of collections can be updated via a PATCH request with a `/$filter(...)/$each` segment + /// + /// The value to set + /// + public UpdateRestrictionsConfiguration HasFilterSegmentSupported(bool filterSegmentSupported) + { + _filterSegmentSupported = filterSegmentSupported; + return this; + } + + /// + /// Members of collections can be updated via a PATCH request with a type-cast segment and a `/$each` segment + /// + /// The value to set + /// + public UpdateRestrictionsConfiguration HasTypecastSegmentSupported(bool typecastSegmentSupported) + { + _typecastSegmentSupported = typecastSegmentSupported; + return this; + } + + /// + /// These navigation properties do not allow rebinding + /// + /// The value(s) to set + /// + public UpdateRestrictionsConfiguration AddNonUpdatableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonUpdatableNavigationProperties) + { + foreach (var item in nonUpdatableNavigationProperties) + { + _ = _nonUpdatableNavigationProperties.Add(item); + } + + return this; + } + + /// + /// The maximum number of navigation properties that can be traversed when addressing the collection or entity to update. A value of -1 indicates there is no restriction. + /// + /// The value to set + /// + public UpdateRestrictionsConfiguration HasMaxLevels(int maxLevels) + { + _maxLevels = maxLevels; + return this; + } + + /// + /// Required permissions. One of the specified sets of scopes is required to perform the update. + /// + /// The value(s) to set + /// + public UpdateRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + { + foreach (var item in permissions) + { + _ = _permissions.Add(item); + } + + return this; + } + + /// + /// Support for query options with update requests + /// + /// The value to set + /// + public UpdateRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsConfiguration queryOptions) + { + _queryOptions = queryOptions; + return this; + } + + /// + /// Supported or required custom headers + /// + /// The value(s) to set + /// + public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + { + foreach (var item in customHeaders) + { + _ = _customHeaders.Add(item); + } + + return this; + } + + /// + /// Supported or required custom query options + /// + /// The value(s) to set + /// + public UpdateRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + { + foreach (var item in customQueryOptions) + { + _ = _customQueryOptions.Add(item); + } + + return this; + } + + /// + /// A brief description of the request + /// + /// The value to set + /// + public UpdateRestrictionsConfiguration HasDescription(string description) + { + _description = description; + return this; + } + + /// + /// A lengthy description of the request + /// + /// The value to set + /// + public UpdateRestrictionsConfiguration HasLongDescription(string longDescription) + { + _longDescription = longDescription; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs new file mode 100644 index 0000000..0a824f9 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +namespace Microsoft.OData.ModelBuilder.Core.V1 +{ + /// + /// Summary +/// + /// + public partial class PrimitiveExampleValueConfiguration : IRecord + { + private object _value; + + /// + /// Creates a new instance of + /// + public PrimitiveExampleValueConfiguration() + { + } + + /// + /// Example value for the custom parameter + /// + /// The value to set + /// + public PrimitiveExampleValue HasValue(object value) + { + _value = value; + return this; + } + + /// + public override IEdmExpression ToEdmExpression() + { + return null; + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.cs deleted file mode 100644 index 43057bf..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.cs +++ /dev/null @@ -1,458 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -using Microsoft.OData.ModelBuilder.Capabilities.V1; - -namespace Microsoft.OData.ModelBuilder -{ - /// - /// Interface for clr types that can be converted into - /// - public interface IRecord - { - /// - /// Convert a clr type to an - /// - /// - IEdmExpression ToEdmExpression(); - } - - /// - /// Base vocabulary builder. - /// - public abstract partial class VocabularyBuilder : IRecord - { - private readonly string _termName; - - /// - /// Creates a new instance of - /// - /// The name of the being built. - public VocabularyBuilder(string termName) => _termName = termName; - - /// - public abstract IEdmExpression ToEdmExpression(); - - /// - /// Sets the vocabulary annotation on the model's target. - /// - /// The having reference vocabulary models. - /// The to set annotations on. - public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnotatable target) - { - _ = model ?? throw new ArgumentNullException(nameof(model)); - _ = target ?? throw new ArgumentNullException(nameof(target)); - - var expression = ToEdmExpression(); - if (expression == null) - { - return; - } - - var term = model.FindTerm(_termName); - if (term == null) - { - return; - } - - var annotation = new EdmVocabularyAnnotation(target, term, expression); - model.SetVocabularyAnnotation(annotation); - } - } - - /// - /// Extension methods for vocabulary builders configurations - /// - public static class VocabularyBuilderExtensions - { - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static ConformanceLevelBuilder HasConformanceLevel(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static SupportedFormatsBuilder HasSupportedFormats(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static SupportedMetadataFormatsBuilder HasSupportedMetadataFormats(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static AcceptableEncodingsBuilder HasAcceptableEncodings(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static AsynchronousRequestsSupportedBuilder HasAsynchronousRequestsSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static BatchContinueOnErrorSupportedBuilder HasBatchContinueOnErrorSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static IsolationSupportedBuilder HasIsolationSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static CrossJoinSupportedBuilder HasCrossJoinSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static CallbackSupportedBuilder HasCallbackSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static ChangeTrackingBuilder HasChangeTracking(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static CountRestrictionsBuilder HasCountRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static NavigationRestrictionsBuilder HasNavigationRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static IndexableByKeyBuilder HasIndexableByKey(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static TopSupportedBuilder HasTopSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static SkipSupportedBuilder HasSkipSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static ComputeSupportedBuilder HasComputeSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static SelectSupportBuilder HasSelectSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static BatchSupportedBuilder HasBatchSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static BatchSupportBuilder HasBatchSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static FilterFunctionsBuilder HasFilterFunctions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static FilterRestrictionsBuilder HasFilterRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static SortRestrictionsBuilder HasSortRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static ExpandRestrictionsBuilder HasExpandRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static SearchRestrictionsBuilder HasSearchRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static KeyAsSegmentSupportedBuilder HasKeyAsSegmentSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static QuerySegmentSupportedBuilder HasQuerySegmentSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static InsertRestrictionsBuilder HasInsertRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static DeepInsertSupportBuilder HasDeepInsertSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static UpdateRestrictionsBuilder HasUpdateRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static DeepUpdateSupportBuilder HasDeepUpdateSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static DeleteRestrictionsBuilder HasDeleteRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static CollectionPropertyRestrictionsBuilder HasCollectionPropertyRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static OperationRestrictionsBuilder HasOperationRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static AnnotationValuesInQuerySupportedBuilder HasAnnotationValuesInQuerySupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static ModificationQueryOptionsBuilder HasModificationQueryOptions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static ReadRestrictionsBuilder HasReadRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static CustomHeadersBuilder HasCustomHeaders(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static CustomQueryOptionsBuilder HasCustomQueryOptions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static MediaLocationUpdateSupportedBuilder HasMediaLocationUpdateSupported(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder(); - - /// - /// Apply all builders as configured - /// - public static void SetVocabularyBuilderAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration configuration) - { - _ = model ?? throw Error.ArgumentNull(nameof(model)); - if (target == null || configuration == null) - { - return; - } - - foreach (var builder in configuration.VocabularyBuilders.Values) - { - builder.SetVocabularyAnnotations(model, (IEdmVocabularyAnnotatable)target); - } - } - - private static TBuilder GetVocabularyBuilder(this NavigationSourceConfiguration navigationSource) where TBuilder : VocabularyBuilder, new() where TEntity : class - { - var vocabularyBuilders = navigationSource.Configuration.VocabularyBuilders; - if (vocabularyBuilders.TryGetValue(typeof(TBuilder), out var builder)) - { - return builder as TBuilder; - } - - builder = new TBuilder(); - vocabularyBuilders.Add(typeof(TBuilder), builder); - - return (TBuilder)builder; - } - } -} - diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.tt deleted file mode 100644 index 9c8c63c..0000000 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyBuilder.tt +++ /dev/null @@ -1,278 +0,0 @@ -<#@ template debug="false" hostspecific="true" language="C#" #> -<#@ assembly name="System.Core" #> -<#@ assembly name="System.Runtime" #> -<#@ assembly name="Microsoft.OData.Edm" #> -<#@ import namespace="System.IO" #> -<#@ import namespace="System.Linq" #> -<#@ import namespace="System.Text" #> -<#@ import namespace="System.Collections.Generic" #> -<#@ import namespace="Microsoft.OData.Edm" #> -<#@ import namespace="Microsoft.OData.Edm.Csdl" #> -<#@ import namespace="Microsoft.OData.Edm.Vocabularies" #> -<#@ output extension=".cs" #> -<# - var model = new EdmModel().ReferencedModels.FirstOrDefault(m => m.GetNamespaceAlias("Org.OData.Capabilities.V1") != null); - if (model == null) - { - throw new InvalidOperationException("The Capabilities Model Cannot Be Found"); - } - - var manager = new Manager(this, model); - var namespaces = manager.Process(); -#> -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -<# - foreach(var ns in namespaces) - { - WriteLine($"using {ns};"); - } -#> - -namespace Microsoft.OData.ModelBuilder -{ - /// - /// Interface for clr types that can be converted into - /// - public interface IRecord - { - /// - /// Convert a clr type to an - /// - /// - IEdmExpression ToEdmExpression(); - } - - /// - /// Base vocabulary builder. - /// - public abstract partial class VocabularyBuilder : IRecord - { - private readonly string _termName; - - /// - /// Creates a new instance of - /// - /// The name of the being built. - public VocabularyBuilder(string termName) => _termName = termName; - - /// - public abstract IEdmExpression ToEdmExpression(); - - /// - /// Sets the vocabulary annotation on the model's target. - /// - /// The having reference vocabulary models. - /// The to set annotations on. - public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnotatable target) - { - _ = model ?? throw new ArgumentNullException(nameof(model)); - _ = target ?? throw new ArgumentNullException(nameof(target)); - - var expression = ToEdmExpression(); - if (expression == null) - { - return; - } - - var term = model.FindTerm(_termName); - if (term == null) - { - return; - } - - var annotation = new EdmVocabularyAnnotation(target, term, expression); - model.SetVocabularyAnnotation(annotation); - } - } - - /// - /// Extension methods for vocabulary builders configurations - /// - public static class VocabularyBuilderExtensions - { -<# - foreach (var term in model.SchemaElements.OfType()) - { -#> - /// - /// configuration - /// - /// The entity type of the navigation source. - /// The that can be built using . - /// - public static <#= term.Name #>Builder Has<#= term.Name #>(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyBuilder<<#= term.Name #>Builder, TEntity>(); - -<# - } -#> - /// - /// Apply all builders as configured - /// - public static void SetVocabularyBuilderAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration configuration) - { - _ = model ?? throw Error.ArgumentNull(nameof(model)); - if (target == null || configuration == null) - { - return; - } - - foreach (var builder in configuration.VocabularyBuilders.Values) - { - builder.SetVocabularyAnnotations(model, (IEdmVocabularyAnnotatable)target); - } - } - - private static TBuilder GetVocabularyBuilder(this NavigationSourceConfiguration navigationSource) where TBuilder : VocabularyBuilder, new() where TEntity : class - { - var vocabularyBuilders = navigationSource.Configuration.VocabularyBuilders; - if (vocabularyBuilders.TryGetValue(typeof(TBuilder), out var builder)) - { - return builder as TBuilder; - } - - builder = new TBuilder(); - vocabularyBuilders.Add(typeof(TBuilder), builder); - - return (TBuilder)builder; - } - } -} - -<#+ -class Manager : GeneratedTextTransformation -{ - private readonly Dictionary _namespaceMap = new Dictionary(); - private readonly string _templateDirectory; - private readonly IEdmModel _model; - - public Manager(GeneratedTextTransformation transformation, IEdmModel model) - { - _templateDirectory = Path.GetDirectoryName(transformation.Host.TemplateFile); - _model = model; - } - - public IEnumerable Process() - { - foreach (var term in _model.SchemaElements.OfType()) - { - WriteTerm(term); - } - - return _namespaceMap.Values.Select(v => v.Namespace).Distinct(); - } - - public void WriteTerm(IEdmTerm term) - { - WriteHeader(); -#> -namespace <#= GetNamespace(term) #> -{ - /// - <#+ ProcessSummary(term, " "); #> - /// - public partial class <#= term.Name #>Builder : VocabularyBuilder - { - /// - /// Creates a new instance of - /// - public <#= term.Name #>Builder() - : base("<#= term.FullName()#>") - { - } - - /// - public override IEdmExpression ToEdmExpression() - { - return null; - } - } -} -<#+ - Dump(term); - } - - public void WriteHeader() - { -#> -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// This is an auto generated file. Please run the template to modify it. - -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; - -<#+ - } - - public void WriteClass() - { - - } - - private void ProcessSummary(IEdmVocabularyAnnotatable target, string indent) - { - var description = _model.GetDescriptionAnnotation(target) ?? target.ToString(); - ProcessSummary(description, indent); - } - - private void ProcessSummary(string text, string indent) - { - if (string.IsNullOrEmpty(text)) - { - WriteLine("/// Summary"); - } - var lines = text.Split(new char[] { '\r', '\n' }); - WriteLine($"/// {lines.FirstOrDefault()}"); - foreach (var line in lines.Skip(1)) - { - WriteLine($"{indent}/// {line}"); - } - } - - private string GetNamespace(IEdmSchemaElement element) => GetFileDetails(element).Namespace; - - private string GetFilePath(IEdmSchemaElement element) => GetFileDetails(element).FilePath; - - private (string Namespace, string FilePath) GetFileDetails(IEdmSchemaElement element) - { - var key = element.FullName(); - if (_namespaceMap.TryGetValue(key, out var details)) - { - return details; - } - - var vocabulary = element.Namespace.Replace("Org.OData", string.Empty); - var @namespace = $"Microsoft.OData.ModelBuilder{vocabulary}"; - var fileParts = vocabulary.Split(new char[]{'.'}, StringSplitOptions.RemoveEmptyEntries).ToList(); - fileParts.Insert(0, _templateDirectory); - fileParts.Add($"{element.Name}Builder.cs"); - var filePath = Path.Combine(fileParts.ToArray()); - - details = (@namespace, filePath); - _namespaceMap.Add(key, details); - - return details; - } - - private void Dump(IEdmSchemaElement element) - { - var filePath = GetFilePath(element); - Directory.CreateDirectory(Path.GetDirectoryName(filePath)); - File.WriteAllText(GetFilePath(element), this.GenerationEnvironment.ToString()); - this.GenerationEnvironment.Remove(0, this.GenerationEnvironment.Length); - } -} -#> \ No newline at end of file diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs new file mode 100644 index 0000000..ee7346e --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs @@ -0,0 +1,297 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// This is an auto generated file. Please run the template to modify it. + +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; + +using Microsoft.OData.ModelBuilder.Capabilities.V1; +using Microsoft.OData.ModelBuilder.Core.V1; + +namespace Microsoft.OData.ModelBuilder +{ + /// + /// Interface for clr types that can be converted into + /// + public interface IRecord + { + /// + /// Convert a clr type to an + /// + /// + IEdmExpression ToEdmExpression(); + } + + /// + /// Base vocabulary configuration. + /// + public abstract partial class VocabularyConfiguration : IRecord + { + private readonly string _termName; + + /// + /// Creates a new instance of + /// + /// The name of the being built. + public VocabularyConfiguration(string termName) => _termName = termName; + + /// + public abstract IEdmExpression ToEdmExpression(); + + /// + /// Sets the vocabulary annotation on the model's target. + /// + /// The having reference vocabulary models. + /// The to set annotations on. + public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnotatable target) + { + _ = model ?? throw new ArgumentNullException(nameof(model)); + _ = target ?? throw new ArgumentNullException(nameof(target)); + + var expression = ToEdmExpression(); + if (expression == null) + { + return; + } + + var term = model.FindTerm(_termName); + if (term == null) + { + return; + } + + var annotation = new EdmVocabularyAnnotation(target, term, expression); + model.SetVocabularyAnnotation(annotation); + } + } + + /// + /// Extension methods for vocabulary builders configurations + /// + public static class VocabularyConfigurationExtensions + { + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static CallbackSupportedConfiguration HasCallbackSupported(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ChangeTrackingConfiguration HasChangeTracking(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static CountRestrictionsConfiguration HasCountRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static NavigationRestrictionsConfiguration HasNavigationRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static IndexableByKeyConfiguration HasIndexableByKey(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static TopSupportedConfiguration HasTopSupported(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SkipSupportedConfiguration HasSkipSupported(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ComputeSupportedConfiguration HasComputeSupported(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SelectSupportConfiguration HasSelectSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static FilterFunctionsConfiguration HasFilterFunctions(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static FilterRestrictionsConfiguration HasFilterRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SortRestrictionsConfiguration HasSortRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ExpandRestrictionsConfiguration HasExpandRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static SearchRestrictionsConfiguration HasSearchRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static InsertRestrictionsConfiguration HasInsertRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static DeepInsertSupportConfiguration HasDeepInsertSupport(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static UpdateRestrictionsConfiguration HasUpdateRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static DeepUpdateSupportConfiguration HasDeepUpdateSupport(this EntitySetConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static DeleteRestrictionsConfiguration HasDeleteRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// configuration + /// + /// The entity type of the navigation source. + /// The that can be built using . + /// + public static ReadRestrictionsConfiguration HasReadRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class + => navigationSource?.GetVocabularyConfiguration(); + + /// + /// Apply all builders as configured + /// + public static void SetVocabularyConfigurationAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration navigationConfiguration) + { + _ = model ?? throw Error.ArgumentNull(nameof(model)); + if (target == null || navigationConfiguration == null) + { + return; + } + + foreach (var configuration in navigationConfiguration.VocabularyConfigurations.Values) + { + configuration.SetVocabularyAnnotations(model, (IEdmVocabularyAnnotatable)target); + } + } + + private static TConfiguration GetVocabularyConfiguration(this NavigationSourceConfiguration navigationSource) where TConfiguration : VocabularyConfiguration, new() where TEntity : class + { + var vocabularyConfigurations = navigationSource.Configuration.VocabularyConfigurations; + if (vocabularyConfigurations.TryGetValue(typeof(TConfiguration), out var configuration)) + { + return configuration as TConfiguration; + } + + configuration = new TConfiguration(); + vocabularyConfigurations.Add(typeof(TConfiguration), configuration); + + return (TConfiguration)configuration; + } + } +} + diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt index 012f3c7..ff43e19 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt @@ -168,7 +168,7 @@ namespace Microsoft.OData.ModelBuilder <#+ class Manager : GeneratedTextTransformation { - private readonly Dictionary _namespaceMap = new Dictionary(); + private readonly Dictionary _namespaceMap = new Dictionary(); private readonly string _templateDirectory; private readonly IEdmModel _model; private readonly Dictionary _typesToGenerateMap = new Dictionary(); @@ -215,6 +215,7 @@ class Manager : GeneratedTextTransformation { var actualType = term.Type.Definition; var description = _model.GetDescriptionAnnotation(term); + var clrType = GetClrType(term); if (actualType.TypeKind == EdmTypeKind.Complex) { _typesToGenerateMap[actualType] = true; @@ -227,21 +228,21 @@ namespace <#= GetNamespace(term) #> /// <#+ ProcessSummary(description, " "); #> /// - public partial class <#= term.Name #>Configuration : VocabularyConfiguration + public partial class <#= clrType #> : VocabularyConfiguration { <#+ ProcessPrivateProperties(term.Type.Definition, term.FullName()); #> /// - /// Creates a new instance of + /// Creates a new instance of /// - public <#= term.Name #>Configuration() + public <#= clrType #>() : base("<#= term.FullName()#>") { } <#+ - ProcessBuildMethods(term.Type.Definition, term.FullName(), term.Name, description); + ProcessBuildMethods(term.Type.Definition, term.FullName(), clrType, description); #> /// @@ -258,7 +259,7 @@ namespace <#= GetNamespace(term) #> public void WriteClass(IEdmComplexType complexType) { var description = _model.GetDescriptionAnnotation(complexType); - + var clrType = GetClrType(complexType); WriteHeader(); #> namespace <#= GetNamespace(complexType) #> @@ -266,16 +267,16 @@ namespace <#= GetNamespace(complexType) #> /// <#+ ProcessSummary(description, " "); #> /// - public partial class <#= complexType.Name #>Configuration : IRecord + public partial class <#= clrType #> : IRecord { <#+ ProcessPrivateProperties(complexType, complexType.FullName()); #> /// - /// Creates a new instance of + /// Creates a new instance of /// - public <#= complexType.Name #>Configuration() + public <#= clrType #>() { } <#+ @@ -373,8 +374,6 @@ using Microsoft.OData.Edm.Vocabularies; return; } - - clrType = clrType + "Configuration"; } #> private <#= clrType #> _<#= CamelCase(name) #>; @@ -398,8 +397,8 @@ using Microsoft.OData.Edm.Vocabularies; <#+ ProcessSummary(description, " "); #> /// /// The value(s) to set - /// - public <#=returnType #>Configuration Add<#= name #>(params <#= clrType #>[] <#= camelName #>) + /// + public <#=returnType #> Add<#= name #>(params <#= clrType #>[] <#= camelName #>) { foreach (var item in <#= camelName #>) { @@ -425,8 +424,6 @@ using Microsoft.OData.Edm.Vocabularies; return; } - - clrType = clrType + "Configuration"; } #> @@ -434,14 +431,16 @@ using Microsoft.OData.Edm.Vocabularies; <#+ ProcessSummary(description, " "); #> /// /// The value to set - /// - public <#=returnType #>Configuration Has<#= name #>(<#= clrType #> <#= camelName #>) + /// + public <#=returnType #> Has<#= name #>(<#= clrType #> <#= camelName #>) { _<#= camelName #> = <#= camelName #>; return this; } <#+ } + + private string GetClrType(IEdmTerm term) => GetFileDetails(term).ClrType; private string GetClrType(IEdmType type, bool nullable = false) { @@ -479,10 +478,10 @@ using Microsoft.OData.Edm.Vocabularies; if (type.TypeKind == EdmTypeKind.Complex) { - var term = _model.SchemaElements.OfType().FirstOrDefault(t => t.Type.Definition.AsElementType().AsActualType() == type) ; + var term = _model.SchemaElements.OfType().FirstOrDefault(t => t.Type.Definition.AsActualType() == type) ; if (term != null) { - clrType = term.Name.Substring(term.Name.LastIndexOf('.') + 1); + clrType = GetClrType(term); } else { @@ -539,7 +538,7 @@ using Microsoft.OData.Edm.Vocabularies; private string GetFilePath(IEdmSchemaElement element) => GetFileDetails(element).FilePath; - private (string Namespace, string FilePath) GetFileDetails(IEdmSchemaElement element) + private (string Namespace, string FilePath, string ClrType) GetFileDetails(IEdmSchemaElement element) { var key = element.FullName(); if (_namespaceMap.TryGetValue(key, out var details)) @@ -553,14 +552,16 @@ using Microsoft.OData.Edm.Vocabularies; suffix = string.Empty; } + var clrType = element.Name + suffix; + var vocabulary = element.Namespace.Replace("Org.OData", string.Empty); var @namespace = $"Microsoft.OData.ModelBuilder{vocabulary}"; var fileParts = vocabulary.Split(new char[]{'.'}, StringSplitOptions.RemoveEmptyEntries).ToList(); fileParts.Insert(0, _templateDirectory); - fileParts.Add($"{element.Name}{suffix}.cs"); + fileParts.Add($"{clrType}.cs"); var filePath = Path.Combine(fileParts.ToArray()); - details = (@namespace, filePath); + details = (@namespace, filePath, clrType); _namespaceMap.Add(key, details); return details; From d2cae7baacce7e974a984b504167affa2caddf69 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 17 Jun 2020 20:44:49 +0300 Subject: [PATCH 05/29] Autogeneration in progress. --- .../Microsoft.OData.ModelBuilder.csproj | 4 ++ .../V1/CallbackProtocolConfiguration.cs | 14 ++-- ...ectionPropertyRestrictionsConfiguration.cs | 4 +- ...onPropertyRestrictionsTypeConfiguration.cs | 52 +++++++------- .../V1/CustomHeadersConfiguration.cs | 4 +- .../V1/CustomParameterConfiguration.cs | 28 ++++---- .../V1/CustomQueryOptionsConfiguration.cs | 4 +- .../V1/DeleteRestrictionsConfiguration.cs | 8 +-- ...rExpressionRestrictionTypeConfiguration.cs | 10 +-- .../V1/InsertRestrictionsConfiguration.cs | 8 +-- ...igationPropertyRestrictionConfiguration.cs | 70 +++++++++---------- .../V1/OperationRestrictionsConfiguration.cs | 8 +-- .../V1/PermissionTypeConfiguration.cs | 10 +-- .../ReadByKeyRestrictionsTypeConfiguration.cs | 2 +- .../Capabilities/V1/ScopeTypeConfiguration.cs | 10 +-- .../V1/UpdateRestrictionsConfiguration.cs | 8 +-- .../V1/PrimitiveExampleValueConfiguration.cs | 6 +- .../Vocabulary/VocabularyConfiguration.tt | 7 +- 18 files changed, 130 insertions(+), 127 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj index 27c7f4b..c8a2855 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj @@ -57,5 +57,9 @@ + + + + diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs index b04d64a..911ba7e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs @@ -31,8 +31,8 @@ public CallbackProtocolConfiguration() /// Protocol Identifier /// /// The value to set - /// - public CallbackProtocol HasId(string id) + /// + public CallbackProtocolConfiguration HasId(string id) { _id = id; return this; @@ -42,8 +42,8 @@ public CallbackProtocol HasId(string id) /// URL Template including parameters. Parameters are enclosed in curly braces {} as defined in RFC6570 /// /// The value to set - /// - public CallbackProtocol HasUrlTemplate(string urlTemplate) + /// + public CallbackProtocolConfiguration HasUrlTemplate(string urlTemplate) { _urlTemplate = urlTemplate; return this; @@ -53,15 +53,15 @@ public CallbackProtocol HasUrlTemplate(string urlTemplate) /// Human readable description of the meaning of the URL Template parameters /// /// The value to set - /// - public CallbackProtocol HasDocumentationUrl(string documentationUrl) + /// + public CallbackProtocolConfiguration HasDocumentationUrl(string documentationUrl) { _documentationUrl = documentationUrl; return this; } /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs index 5d9f5ff..b691242 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -15,7 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class CollectionPropertyRestrictionsConfiguration : VocabularyConfiguration { - private readonly HashSet _collectionPropertyRestrictions = new HashSet(); + private readonly HashSet _collectionPropertyRestrictions = new HashSet(); /// /// Creates a new instance of @@ -30,7 +30,7 @@ public CollectionPropertyRestrictionsConfiguration() /// /// The value(s) to set /// - public CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions(params CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) + public CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions(params CollectionPropertyRestrictionsConfiguration[] collectionPropertyRestrictions) { foreach (var item in collectionPropertyRestrictions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs index 35e4f83..85b9766 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -14,7 +14,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// Summary /// /// - public partial class CollectionPropertyRestrictionsTypeConfiguration : IRecord + public partial class CollectionPropertyRestrictionsConfiguration : IRecord { private EdmPropertyPathExpression _collectionProperty; private readonly HashSet _filterFunctions = new HashSet(); @@ -29,9 +29,9 @@ public partial class CollectionPropertyRestrictionsTypeConfiguration : IRecord private bool? _deletable; /// - /// Creates a new instance of + /// Creates a new instance of /// - public CollectionPropertyRestrictionsTypeConfiguration() + public CollectionPropertyRestrictionsConfiguration() { } @@ -39,8 +39,8 @@ public CollectionPropertyRestrictionsTypeConfiguration() /// Restricted Collection-valued property /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasCollectionProperty(EdmPropertyPathExpression collectionProperty) + /// + public CollectionPropertyRestrictionsConfiguration HasCollectionProperty(EdmPropertyPathExpression collectionProperty) { _collectionProperty = collectionProperty; return this; @@ -50,8 +50,8 @@ public CollectionPropertyRestrictionsType HasCollectionProperty(EdmPropertyPathE /// List of functions and operators supported in filter expressions. /// /// The value(s) to set - /// - public CollectionPropertyRestrictionsType AddFilterFunctions(params string[] filterFunctions) + /// + public CollectionPropertyRestrictionsConfiguration AddFilterFunctions(params string[] filterFunctions) { foreach (var item in filterFunctions) { @@ -65,8 +65,8 @@ public CollectionPropertyRestrictionsType AddFilterFunctions(params string[] fil /// Restrictions on filter expressions /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasFilterRestrictions(FilterRestrictionsConfiguration filterRestrictions) + /// + public CollectionPropertyRestrictionsConfiguration HasFilterRestrictions(FilterRestrictionsConfiguration filterRestrictions) { _filterRestrictions = filterRestrictions; return this; @@ -76,8 +76,8 @@ public CollectionPropertyRestrictionsType HasFilterRestrictions(FilterRestrictio /// Restrictions on search expressions /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasSearchRestrictions(SearchRestrictionsConfiguration searchRestrictions) + /// + public CollectionPropertyRestrictionsConfiguration HasSearchRestrictions(SearchRestrictionsConfiguration searchRestrictions) { _searchRestrictions = searchRestrictions; return this; @@ -87,8 +87,8 @@ public CollectionPropertyRestrictionsType HasSearchRestrictions(SearchRestrictio /// Restrictions on orderby expressions /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasSortRestrictions(SortRestrictionsConfiguration sortRestrictions) + /// + public CollectionPropertyRestrictionsConfiguration HasSortRestrictions(SortRestrictionsConfiguration sortRestrictions) { _sortRestrictions = sortRestrictions; return this; @@ -98,8 +98,8 @@ public CollectionPropertyRestrictionsType HasSortRestrictions(SortRestrictionsCo /// Supports $top /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasTopSupported(bool topSupported) + /// + public CollectionPropertyRestrictionsConfiguration HasTopSupported(bool topSupported) { _topSupported = topSupported; return this; @@ -109,8 +109,8 @@ public CollectionPropertyRestrictionsType HasTopSupported(bool topSupported) /// Supports $skip /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasSkipSupported(bool skipSupported) + /// + public CollectionPropertyRestrictionsConfiguration HasSkipSupported(bool skipSupported) { _skipSupported = skipSupported; return this; @@ -120,8 +120,8 @@ public CollectionPropertyRestrictionsType HasSkipSupported(bool skipSupported) /// Support for $select /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasSelectSupport(SelectSupportConfiguration selectSupport) + /// + public CollectionPropertyRestrictionsConfiguration HasSelectSupport(SelectSupportConfiguration selectSupport) { _selectSupport = selectSupport; return this; @@ -131,8 +131,8 @@ public CollectionPropertyRestrictionsType HasSelectSupport(SelectSupportConfigur /// Members can be inserted into this collection /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasInsertable(bool insertable) + /// + public CollectionPropertyRestrictionsConfiguration HasInsertable(bool insertable) { _insertable = insertable; return this; @@ -142,8 +142,8 @@ public CollectionPropertyRestrictionsType HasInsertable(bool insertable) /// Members of this ordered collection can be updated by ordinal /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasUpdatable(bool updatable) + /// + public CollectionPropertyRestrictionsConfiguration HasUpdatable(bool updatable) { _updatable = updatable; return this; @@ -153,15 +153,15 @@ public CollectionPropertyRestrictionsType HasUpdatable(bool updatable) /// Members of this ordered collection can be deleted by ordinal /// /// The value to set - /// - public CollectionPropertyRestrictionsType HasDeletable(bool deletable) + /// + public CollectionPropertyRestrictionsConfiguration HasDeletable(bool deletable) { _deletable = deletable; return this; } /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs index 1527138..f06bac1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs @@ -15,7 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class CustomHeadersConfiguration : VocabularyConfiguration { - private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); /// /// Creates a new instance of @@ -30,7 +30,7 @@ public CustomHeadersConfiguration() /// /// The value(s) to set /// - public CustomHeadersConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public CustomHeadersConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) { foreach (var item in customHeaders) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs index 8076eec..32420c9 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// A custom parameter is either a header or a query option /// - public partial class CustomParameterConfiguration : IRecord + public partial class CustomHeadersConfiguration : IRecord { private string _name; private string _description; @@ -22,9 +22,9 @@ public partial class CustomParameterConfiguration : IRecord private readonly HashSet _exampleValues = new HashSet(); /// - /// Creates a new instance of + /// Creates a new instance of /// - public CustomParameterConfiguration() + public CustomHeadersConfiguration() { } @@ -32,8 +32,8 @@ public CustomParameterConfiguration() /// Name of the custom parameter /// /// The value to set - /// - public CustomParameter HasName(string name) + /// + public CustomHeadersConfiguration HasName(string name) { _name = name; return this; @@ -43,8 +43,8 @@ public CustomParameter HasName(string name) /// Description of the custom parameter /// /// The value to set - /// - public CustomParameter HasDescription(string description) + /// + public CustomHeadersConfiguration HasDescription(string description) { _description = description; return this; @@ -54,8 +54,8 @@ public CustomParameter HasDescription(string description) /// URL of related documentation /// /// The value to set - /// - public CustomParameter HasDocumentationURL(string documentationURL) + /// + public CustomHeadersConfiguration HasDocumentationURL(string documentationURL) { _documentationURL = documentationURL; return this; @@ -65,8 +65,8 @@ public CustomParameter HasDocumentationURL(string documentationURL) /// true: parameter is required, false or not specified: parameter is optional /// /// The value to set - /// - public CustomParameter HasRequired(bool required) + /// + public CustomHeadersConfiguration HasRequired(bool required) { _required = required; return this; @@ -76,8 +76,8 @@ public CustomParameter HasRequired(bool required) /// Example values for the custom parameter /// /// The value(s) to set - /// - public CustomParameter AddExampleValues(params PrimitiveExampleValueConfiguration[] exampleValues) + /// + public CustomHeadersConfiguration AddExampleValues(params PrimitiveExampleValueConfiguration[] exampleValues) { foreach (var item in exampleValues) { @@ -88,7 +88,7 @@ public CustomParameter AddExampleValues(params PrimitiveExampleValueConfiguratio } /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs index 6b2b2d3..8e40025 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -15,7 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class CustomQueryOptionsConfiguration : VocabularyConfiguration { - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); /// /// Creates a new instance of @@ -30,7 +30,7 @@ public CustomQueryOptionsConfiguration() /// /// The value(s) to set /// - public CustomQueryOptionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public CustomQueryOptionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs index 180d8b7..c21bd0a 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -21,8 +21,8 @@ public partial class DeleteRestrictionsConfiguration : VocabularyConfiguration private bool? _filterSegmentSupported; private bool? _typecastSegmentSupported; private readonly HashSet _permissions = new HashSet(); - private readonly HashSet _customHeaders = new HashSet(); - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); private string _description; private string _longDescription; @@ -113,7 +113,7 @@ public DeleteRestrictionsConfiguration AddPermissions(params PermissionTypeConfi /// /// The value(s) to set /// - public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) { foreach (var item in customHeaders) { @@ -128,7 +128,7 @@ public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomParameterCo /// /// The value(s) to set /// - public DeleteRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public DeleteRestrictionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs index 72a398b..5d39f11 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs @@ -30,8 +30,8 @@ public FilterExpressionRestrictionTypeConfiguration() /// Path to the restricted property /// /// The value to set - /// - public FilterExpressionRestrictionType HasProperty(EdmPropertyPathExpression property) + /// + public FilterExpressionRestrictionTypeConfiguration HasProperty(EdmPropertyPathExpression property) { _property = property; return this; @@ -41,15 +41,15 @@ public FilterExpressionRestrictionType HasProperty(EdmPropertyPathExpression pro /// Allowed subset of expressions /// /// The value to set - /// - public FilterExpressionRestrictionType HasAllowedExpressions(string allowedExpressions) + /// + public FilterExpressionRestrictionTypeConfiguration HasAllowedExpressions(string allowedExpressions) { _allowedExpressions = allowedExpressions; return this; } /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs index 035f403..499c337 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -22,8 +22,8 @@ public partial class InsertRestrictionsConfiguration : VocabularyConfiguration private bool? _typecastSegmentSupported; private readonly HashSet _permissions = new HashSet(); private ModificationQueryOptionsConfiguration _queryOptions; - private readonly HashSet _customHeaders = new HashSet(); - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); private string _description; private string _longDescription; @@ -129,7 +129,7 @@ public InsertRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// /// The value(s) to set /// - public InsertRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public InsertRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) { foreach (var item in customHeaders) { @@ -144,7 +144,7 @@ public InsertRestrictionsConfiguration AddCustomHeaders(params CustomParameterCo /// /// The value(s) to set /// - public InsertRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public InsertRestrictionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs index 3bc3781..fb02bc4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -45,8 +45,8 @@ public NavigationPropertyRestrictionConfiguration() /// Navigation properties can be navigated /// /// The value to set - /// - public NavigationPropertyRestriction HasNavigationProperty(EdmNavigationPropertyPathExpression navigationProperty) + /// + public NavigationPropertyRestrictionConfiguration HasNavigationProperty(EdmNavigationPropertyPathExpression navigationProperty) { _navigationProperty = navigationProperty; return this; @@ -56,8 +56,8 @@ public NavigationPropertyRestriction HasNavigationProperty(EdmNavigationProperty /// Supported navigability of this navigation property. /// /// The value to set - /// - public NavigationPropertyRestriction HasNavigability(NavigationType navigability) + /// + public NavigationPropertyRestrictionConfiguration HasNavigability(NavigationType navigability) { _navigability = navigability; return this; @@ -67,8 +67,8 @@ public NavigationPropertyRestriction HasNavigability(NavigationType navigability /// List of functions and operators supported in filter expressions. /// /// The value(s) to set - /// - public NavigationPropertyRestriction AddFilterFunctions(params string[] filterFunctions) + /// + public NavigationPropertyRestrictionConfiguration AddFilterFunctions(params string[] filterFunctions) { foreach (var item in filterFunctions) { @@ -82,8 +82,8 @@ public NavigationPropertyRestriction AddFilterFunctions(params string[] filterFu /// Restrictions on filter expressions /// /// The value to set - /// - public NavigationPropertyRestriction HasFilterRestrictions(FilterRestrictionsConfiguration filterRestrictions) + /// + public NavigationPropertyRestrictionConfiguration HasFilterRestrictions(FilterRestrictionsConfiguration filterRestrictions) { _filterRestrictions = filterRestrictions; return this; @@ -93,8 +93,8 @@ public NavigationPropertyRestriction HasFilterRestrictions(FilterRestrictionsCon /// Restrictions on search expressions /// /// The value to set - /// - public NavigationPropertyRestriction HasSearchRestrictions(SearchRestrictionsConfiguration searchRestrictions) + /// + public NavigationPropertyRestrictionConfiguration HasSearchRestrictions(SearchRestrictionsConfiguration searchRestrictions) { _searchRestrictions = searchRestrictions; return this; @@ -104,8 +104,8 @@ public NavigationPropertyRestriction HasSearchRestrictions(SearchRestrictionsCon /// Restrictions on orderby expressions /// /// The value to set - /// - public NavigationPropertyRestriction HasSortRestrictions(SortRestrictionsConfiguration sortRestrictions) + /// + public NavigationPropertyRestrictionConfiguration HasSortRestrictions(SortRestrictionsConfiguration sortRestrictions) { _sortRestrictions = sortRestrictions; return this; @@ -115,8 +115,8 @@ public NavigationPropertyRestriction HasSortRestrictions(SortRestrictionsConfigu /// Supports $top /// /// The value to set - /// - public NavigationPropertyRestriction HasTopSupported(bool topSupported) + /// + public NavigationPropertyRestrictionConfiguration HasTopSupported(bool topSupported) { _topSupported = topSupported; return this; @@ -126,8 +126,8 @@ public NavigationPropertyRestriction HasTopSupported(bool topSupported) /// Supports $skip /// /// The value to set - /// - public NavigationPropertyRestriction HasSkipSupported(bool skipSupported) + /// + public NavigationPropertyRestrictionConfiguration HasSkipSupported(bool skipSupported) { _skipSupported = skipSupported; return this; @@ -137,8 +137,8 @@ public NavigationPropertyRestriction HasSkipSupported(bool skipSupported) /// Support for $select /// /// The value to set - /// - public NavigationPropertyRestriction HasSelectSupport(SelectSupportConfiguration selectSupport) + /// + public NavigationPropertyRestrictionConfiguration HasSelectSupport(SelectSupportConfiguration selectSupport) { _selectSupport = selectSupport; return this; @@ -148,8 +148,8 @@ public NavigationPropertyRestriction HasSelectSupport(SelectSupportConfiguration /// Supports key values according to OData URL conventions /// /// The value to set - /// - public NavigationPropertyRestriction HasIndexableByKey(bool indexableByKey) + /// + public NavigationPropertyRestrictionConfiguration HasIndexableByKey(bool indexableByKey) { _indexableByKey = indexableByKey; return this; @@ -159,8 +159,8 @@ public NavigationPropertyRestriction HasIndexableByKey(bool indexableByKey) /// Restrictions on insert operations /// /// The value to set - /// - public NavigationPropertyRestriction HasInsertRestrictions(InsertRestrictionsConfiguration insertRestrictions) + /// + public NavigationPropertyRestrictionConfiguration HasInsertRestrictions(InsertRestrictionsConfiguration insertRestrictions) { _insertRestrictions = insertRestrictions; return this; @@ -170,8 +170,8 @@ public NavigationPropertyRestriction HasInsertRestrictions(InsertRestrictionsCon /// Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) /// /// The value to set - /// - public NavigationPropertyRestriction HasDeepInsertSupport(DeepInsertSupportConfiguration deepInsertSupport) + /// + public NavigationPropertyRestrictionConfiguration HasDeepInsertSupport(DeepInsertSupportConfiguration deepInsertSupport) { _deepInsertSupport = deepInsertSupport; return this; @@ -181,8 +181,8 @@ public NavigationPropertyRestriction HasDeepInsertSupport(DeepInsertSupportConfi /// Restrictions on update operations /// /// The value to set - /// - public NavigationPropertyRestriction HasUpdateRestrictions(UpdateRestrictionsConfiguration updateRestrictions) + /// + public NavigationPropertyRestrictionConfiguration HasUpdateRestrictions(UpdateRestrictionsConfiguration updateRestrictions) { _updateRestrictions = updateRestrictions; return this; @@ -192,8 +192,8 @@ public NavigationPropertyRestriction HasUpdateRestrictions(UpdateRestrictionsCon /// Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) /// /// The value to set - /// - public NavigationPropertyRestriction HasDeepUpdateSupport(DeepUpdateSupportConfiguration deepUpdateSupport) + /// + public NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport(DeepUpdateSupportConfiguration deepUpdateSupport) { _deepUpdateSupport = deepUpdateSupport; return this; @@ -203,8 +203,8 @@ public NavigationPropertyRestriction HasDeepUpdateSupport(DeepUpdateSupportConfi /// Restrictions on delete operations /// /// The value to set - /// - public NavigationPropertyRestriction HasDeleteRestrictions(DeleteRestrictionsConfiguration deleteRestrictions) + /// + public NavigationPropertyRestrictionConfiguration HasDeleteRestrictions(DeleteRestrictionsConfiguration deleteRestrictions) { _deleteRestrictions = deleteRestrictions; return this; @@ -214,8 +214,8 @@ public NavigationPropertyRestriction HasDeleteRestrictions(DeleteRestrictionsCon /// Data modification (including insert) along this navigation property requires the use of ETags /// /// The value to set - /// - public NavigationPropertyRestriction HasOptimisticConcurrencyControl(bool optimisticConcurrencyControl) + /// + public NavigationPropertyRestrictionConfiguration HasOptimisticConcurrencyControl(bool optimisticConcurrencyControl) { _optimisticConcurrencyControl = optimisticConcurrencyControl; return this; @@ -225,15 +225,15 @@ public NavigationPropertyRestriction HasOptimisticConcurrencyControl(bool optimi /// Restrictions for retrieving entities /// /// The value to set - /// - public NavigationPropertyRestriction HasReadRestrictions(ReadRestrictionsConfiguration readRestrictions) + /// + public NavigationPropertyRestrictionConfiguration HasReadRestrictions(ReadRestrictionsConfiguration readRestrictions) { _readRestrictions = readRestrictions; return this; } /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs index 44aae2b..195bbcb 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -17,8 +17,8 @@ public partial class OperationRestrictionsConfiguration : VocabularyConfiguratio { private bool? _filterSegmentSupported; private readonly HashSet _permissions = new HashSet(); - private readonly HashSet _customHeaders = new HashSet(); - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); /// /// Creates a new instance of @@ -59,7 +59,7 @@ public OperationRestrictionsConfiguration AddPermissions(params PermissionTypeCo /// /// The value(s) to set /// - public OperationRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public OperationRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) { foreach (var item in customHeaders) { @@ -74,7 +74,7 @@ public OperationRestrictionsConfiguration AddCustomHeaders(params CustomParamete /// /// The value(s) to set /// - public OperationRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public OperationRestrictionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs index cef16b6..53326cb 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs @@ -30,8 +30,8 @@ public PermissionTypeConfiguration() /// Authorization flow scheme name /// /// The value to set - /// - public PermissionType HasSchemeName(string schemeName) + /// + public PermissionTypeConfiguration HasSchemeName(string schemeName) { _schemeName = schemeName; return this; @@ -41,8 +41,8 @@ public PermissionType HasSchemeName(string schemeName) /// List of scopes that can provide access to the resource /// /// The value(s) to set - /// - public PermissionType AddScopes(params ScopeTypeConfiguration[] scopes) + /// + public PermissionTypeConfiguration AddScopes(params ScopeTypeConfiguration[] scopes) { foreach (var item in scopes) { @@ -53,7 +53,7 @@ public PermissionType AddScopes(params ScopeTypeConfiguration[] scopes) } /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index d357d9e..09f30c4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -24,7 +24,7 @@ public ReadByKeyRestrictionsTypeConfiguration() } /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs index 88966fa..1559c8f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs @@ -30,8 +30,8 @@ public ScopeTypeConfiguration() /// Name of the scope. /// /// The value to set - /// - public ScopeType HasScope(string scope) + /// + public ScopeTypeConfiguration HasScope(string scope) { _scope = scope; return this; @@ -41,15 +41,15 @@ public ScopeType HasScope(string scope) /// Comma-separated string value of all properties that will be included or excluded when using the scope. /// /// The value to set - /// - public ScopeType HasRestrictedProperties(string restrictedProperties) + /// + public ScopeTypeConfiguration HasRestrictedProperties(string restrictedProperties) { _restrictedProperties = restrictedProperties; return this; } /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs index 8f110b7..3c6d3f6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -24,8 +24,8 @@ public partial class UpdateRestrictionsConfiguration : VocabularyConfiguration private int? _maxLevels; private readonly HashSet _permissions = new HashSet(); private ModificationQueryOptionsConfiguration _queryOptions; - private readonly HashSet _customHeaders = new HashSet(); - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); private string _description; private string _longDescription; @@ -149,7 +149,7 @@ public UpdateRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// /// The value(s) to set /// - public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) { foreach (var item in customHeaders) { @@ -164,7 +164,7 @@ public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomParameterCo /// /// The value(s) to set /// - public UpdateRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public UpdateRestrictionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs index 0a824f9..fb1f5ec 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs @@ -29,15 +29,15 @@ public PrimitiveExampleValueConfiguration() /// Example value for the custom parameter /// /// The value to set - /// - public PrimitiveExampleValue HasValue(object value) + /// + public PrimitiveExampleValueConfiguration HasValue(object value) { _value = value; return this; } /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt index ff43e19..d998110 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt @@ -280,11 +280,11 @@ namespace <#= GetNamespace(complexType) #> { } <#+ - ProcessBuildMethods(complexType, complexType.FullName(), complexType.Name, description); + ProcessBuildMethods(complexType, complexType.FullName(), clrType, description); #> /// - public override IEdmExpression ToEdmExpression() + public IEdmExpression ToEdmExpression() { return null; } @@ -390,7 +390,6 @@ using Microsoft.OData.Edm.Vocabularies; if (typeKind == EdmTypeKind.Collection) { - clrType = GetClrType(actualType, false); #> /// @@ -478,7 +477,7 @@ using Microsoft.OData.Edm.Vocabularies; if (type.TypeKind == EdmTypeKind.Complex) { - var term = _model.SchemaElements.OfType().FirstOrDefault(t => t.Type.Definition.AsActualType() == type) ; + var term = _model.SchemaElements.OfType().FirstOrDefault(t => t.Type.Definition.AsElementType().AsActualType() == type || t.Type.Definition.AsActualType() == type); if (term != null) { clrType = GetClrType(term); From d118f654f9ae8eb99f9975dee7140d54b78171ca Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 17 Jun 2020 21:34:46 +0300 Subject: [PATCH 06/29] Autogeneration namespacing. --- .../Microsoft.OData.ModelBuilder.csproj | 4 -- ...ectionPropertyRestrictionsConfiguration.cs | 4 +- ...onPropertyRestrictionsTypeConfiguration.cs | 50 +++++++++---------- .../V1/CustomHeadersConfiguration.cs | 4 +- .../V1/CustomParameterConfiguration.cs | 28 +++++------ .../V1/CustomQueryOptionsConfiguration.cs | 4 +- .../V1/DeleteRestrictionsConfiguration.cs | 8 +-- .../V1/InsertRestrictionsConfiguration.cs | 8 +-- .../V1/OperationRestrictionsConfiguration.cs | 8 +-- .../V1/UpdateRestrictionsConfiguration.cs | 8 +-- .../Vocabulary/VocabularyConfiguration.tt | 47 +++++++++++------ 11 files changed, 94 insertions(+), 79 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj index c8a2855..27c7f4b 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj @@ -57,9 +57,5 @@ - - - - diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs index b691242..5d9f5ff 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -15,7 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class CollectionPropertyRestrictionsConfiguration : VocabularyConfiguration { - private readonly HashSet _collectionPropertyRestrictions = new HashSet(); + private readonly HashSet _collectionPropertyRestrictions = new HashSet(); /// /// Creates a new instance of @@ -30,7 +30,7 @@ public CollectionPropertyRestrictionsConfiguration() /// /// The value(s) to set /// - public CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions(params CollectionPropertyRestrictionsConfiguration[] collectionPropertyRestrictions) + public CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions(params CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) { foreach (var item in collectionPropertyRestrictions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs index 85b9766..3130910 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -14,7 +14,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// Summary /// /// - public partial class CollectionPropertyRestrictionsConfiguration : IRecord + public partial class CollectionPropertyRestrictionsTypeConfiguration : IRecord { private EdmPropertyPathExpression _collectionProperty; private readonly HashSet _filterFunctions = new HashSet(); @@ -29,9 +29,9 @@ public partial class CollectionPropertyRestrictionsConfiguration : IRecord private bool? _deletable; /// - /// Creates a new instance of + /// Creates a new instance of /// - public CollectionPropertyRestrictionsConfiguration() + public CollectionPropertyRestrictionsTypeConfiguration() { } @@ -39,8 +39,8 @@ public CollectionPropertyRestrictionsConfiguration() /// Restricted Collection-valued property /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasCollectionProperty(EdmPropertyPathExpression collectionProperty) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasCollectionProperty(EdmPropertyPathExpression collectionProperty) { _collectionProperty = collectionProperty; return this; @@ -50,8 +50,8 @@ public CollectionPropertyRestrictionsConfiguration HasCollectionProperty(EdmProp /// List of functions and operators supported in filter expressions. /// /// The value(s) to set - /// - public CollectionPropertyRestrictionsConfiguration AddFilterFunctions(params string[] filterFunctions) + /// + public CollectionPropertyRestrictionsTypeConfiguration AddFilterFunctions(params string[] filterFunctions) { foreach (var item in filterFunctions) { @@ -65,8 +65,8 @@ public CollectionPropertyRestrictionsConfiguration AddFilterFunctions(params str /// Restrictions on filter expressions /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasFilterRestrictions(FilterRestrictionsConfiguration filterRestrictions) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions(FilterRestrictionsConfiguration filterRestrictions) { _filterRestrictions = filterRestrictions; return this; @@ -76,8 +76,8 @@ public CollectionPropertyRestrictionsConfiguration HasFilterRestrictions(FilterR /// Restrictions on search expressions /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasSearchRestrictions(SearchRestrictionsConfiguration searchRestrictions) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions(SearchRestrictionsConfiguration searchRestrictions) { _searchRestrictions = searchRestrictions; return this; @@ -87,8 +87,8 @@ public CollectionPropertyRestrictionsConfiguration HasSearchRestrictions(SearchR /// Restrictions on orderby expressions /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasSortRestrictions(SortRestrictionsConfiguration sortRestrictions) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasSortRestrictions(SortRestrictionsConfiguration sortRestrictions) { _sortRestrictions = sortRestrictions; return this; @@ -98,8 +98,8 @@ public CollectionPropertyRestrictionsConfiguration HasSortRestrictions(SortRestr /// Supports $top /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasTopSupported(bool topSupported) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasTopSupported(bool topSupported) { _topSupported = topSupported; return this; @@ -109,8 +109,8 @@ public CollectionPropertyRestrictionsConfiguration HasTopSupported(bool topSuppo /// Supports $skip /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasSkipSupported(bool skipSupported) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasSkipSupported(bool skipSupported) { _skipSupported = skipSupported; return this; @@ -120,8 +120,8 @@ public CollectionPropertyRestrictionsConfiguration HasSkipSupported(bool skipSup /// Support for $select /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasSelectSupport(SelectSupportConfiguration selectSupport) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport(SelectSupportConfiguration selectSupport) { _selectSupport = selectSupport; return this; @@ -131,8 +131,8 @@ public CollectionPropertyRestrictionsConfiguration HasSelectSupport(SelectSuppor /// Members can be inserted into this collection /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasInsertable(bool insertable) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasInsertable(bool insertable) { _insertable = insertable; return this; @@ -142,8 +142,8 @@ public CollectionPropertyRestrictionsConfiguration HasInsertable(bool insertable /// Members of this ordered collection can be updated by ordinal /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasUpdatable(bool updatable) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasUpdatable(bool updatable) { _updatable = updatable; return this; @@ -153,8 +153,8 @@ public CollectionPropertyRestrictionsConfiguration HasUpdatable(bool updatable) /// Members of this ordered collection can be deleted by ordinal /// /// The value to set - /// - public CollectionPropertyRestrictionsConfiguration HasDeletable(bool deletable) + /// + public CollectionPropertyRestrictionsTypeConfiguration HasDeletable(bool deletable) { _deletable = deletable; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs index f06bac1..1527138 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs @@ -15,7 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class CustomHeadersConfiguration : VocabularyConfiguration { - private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); /// /// Creates a new instance of @@ -30,7 +30,7 @@ public CustomHeadersConfiguration() /// /// The value(s) to set /// - public CustomHeadersConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) + public CustomHeadersConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { foreach (var item in customHeaders) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs index 32420c9..2dca8e1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs @@ -13,18 +13,18 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// A custom parameter is either a header or a query option /// - public partial class CustomHeadersConfiguration : IRecord + public partial class CustomParameterConfiguration : IRecord { private string _name; private string _description; private string _documentationURL; private bool? _required; - private readonly HashSet _exampleValues = new HashSet(); + private readonly HashSet _exampleValues = new HashSet(); /// - /// Creates a new instance of + /// Creates a new instance of /// - public CustomHeadersConfiguration() + public CustomParameterConfiguration() { } @@ -32,8 +32,8 @@ public CustomHeadersConfiguration() /// Name of the custom parameter /// /// The value to set - /// - public CustomHeadersConfiguration HasName(string name) + /// + public CustomParameterConfiguration HasName(string name) { _name = name; return this; @@ -43,8 +43,8 @@ public CustomHeadersConfiguration HasName(string name) /// Description of the custom parameter /// /// The value to set - /// - public CustomHeadersConfiguration HasDescription(string description) + /// + public CustomParameterConfiguration HasDescription(string description) { _description = description; return this; @@ -54,8 +54,8 @@ public CustomHeadersConfiguration HasDescription(string description) /// URL of related documentation /// /// The value to set - /// - public CustomHeadersConfiguration HasDocumentationURL(string documentationURL) + /// + public CustomParameterConfiguration HasDocumentationURL(string documentationURL) { _documentationURL = documentationURL; return this; @@ -65,8 +65,8 @@ public CustomHeadersConfiguration HasDocumentationURL(string documentationURL) /// true: parameter is required, false or not specified: parameter is optional /// /// The value to set - /// - public CustomHeadersConfiguration HasRequired(bool required) + /// + public CustomParameterConfiguration HasRequired(bool required) { _required = required; return this; @@ -76,8 +76,8 @@ public CustomHeadersConfiguration HasRequired(bool required) /// Example values for the custom parameter /// /// The value(s) to set - /// - public CustomHeadersConfiguration AddExampleValues(params PrimitiveExampleValueConfiguration[] exampleValues) + /// + public CustomParameterConfiguration AddExampleValues(params Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration[] exampleValues) { foreach (var item in exampleValues) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs index 8e40025..6b2b2d3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -15,7 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class CustomQueryOptionsConfiguration : VocabularyConfiguration { - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); /// /// Creates a new instance of @@ -30,7 +30,7 @@ public CustomQueryOptionsConfiguration() /// /// The value(s) to set /// - public CustomQueryOptionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) + public CustomQueryOptionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs index c21bd0a..180d8b7 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -21,8 +21,8 @@ public partial class DeleteRestrictionsConfiguration : VocabularyConfiguration private bool? _filterSegmentSupported; private bool? _typecastSegmentSupported; private readonly HashSet _permissions = new HashSet(); - private readonly HashSet _customHeaders = new HashSet(); - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); private string _description; private string _longDescription; @@ -113,7 +113,7 @@ public DeleteRestrictionsConfiguration AddPermissions(params PermissionTypeConfi /// /// The value(s) to set /// - public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) + public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { foreach (var item in customHeaders) { @@ -128,7 +128,7 @@ public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConf /// /// The value(s) to set /// - public DeleteRestrictionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) + public DeleteRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs index 499c337..035f403 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -22,8 +22,8 @@ public partial class InsertRestrictionsConfiguration : VocabularyConfiguration private bool? _typecastSegmentSupported; private readonly HashSet _permissions = new HashSet(); private ModificationQueryOptionsConfiguration _queryOptions; - private readonly HashSet _customHeaders = new HashSet(); - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); private string _description; private string _longDescription; @@ -129,7 +129,7 @@ public InsertRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// /// The value(s) to set /// - public InsertRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) + public InsertRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { foreach (var item in customHeaders) { @@ -144,7 +144,7 @@ public InsertRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConf /// /// The value(s) to set /// - public InsertRestrictionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) + public InsertRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs index 195bbcb..44aae2b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -17,8 +17,8 @@ public partial class OperationRestrictionsConfiguration : VocabularyConfiguratio { private bool? _filterSegmentSupported; private readonly HashSet _permissions = new HashSet(); - private readonly HashSet _customHeaders = new HashSet(); - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); /// /// Creates a new instance of @@ -59,7 +59,7 @@ public OperationRestrictionsConfiguration AddPermissions(params PermissionTypeCo /// /// The value(s) to set /// - public OperationRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) + public OperationRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { foreach (var item in customHeaders) { @@ -74,7 +74,7 @@ public OperationRestrictionsConfiguration AddCustomHeaders(params CustomHeadersC /// /// The value(s) to set /// - public OperationRestrictionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) + public OperationRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs index 3c6d3f6..8f110b7 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -24,8 +24,8 @@ public partial class UpdateRestrictionsConfiguration : VocabularyConfiguration private int? _maxLevels; private readonly HashSet _permissions = new HashSet(); private ModificationQueryOptionsConfiguration _queryOptions; - private readonly HashSet _customHeaders = new HashSet(); - private readonly HashSet _customQueryOptions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); private string _description; private string _longDescription; @@ -149,7 +149,7 @@ public UpdateRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// /// The value(s) to set /// - public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConfiguration[] customHeaders) + public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { foreach (var item in customHeaders) { @@ -164,7 +164,7 @@ public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomHeadersConf /// /// The value(s) to set /// - public UpdateRestrictionsConfiguration AddCustomQueryOptions(params CustomHeadersConfiguration[] customQueryOptions) + public UpdateRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { foreach (var item in customQueryOptions) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt index d998110..b97883a 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt @@ -216,6 +216,7 @@ class Manager : GeneratedTextTransformation var actualType = term.Type.Definition; var description = _model.GetDescriptionAnnotation(term); var clrType = GetClrType(term); + var @namespace = GetNamespace(term); if (actualType.TypeKind == EdmTypeKind.Complex) { _typesToGenerateMap[actualType] = true; @@ -223,7 +224,7 @@ class Manager : GeneratedTextTransformation WriteHeader(); #> -namespace <#= GetNamespace(term) #> +namespace <#= @namespace #> { /// <#+ ProcessSummary(description, " "); #> @@ -231,7 +232,7 @@ namespace <#= GetNamespace(term) #> public partial class <#= clrType #> : VocabularyConfiguration { <#+ - ProcessPrivateProperties(term.Type.Definition, term.FullName()); + ProcessPrivateProperties(term.Type.Definition, term.FullName(), @namespace); #> /// @@ -242,7 +243,7 @@ namespace <#= GetNamespace(term) #> { } <#+ - ProcessBuildMethods(term.Type.Definition, term.FullName(), clrType, description); + ProcessBuildMethods(term.Type.Definition, term.FullName(), clrType, description, @namespace); #> /// @@ -260,9 +261,10 @@ namespace <#= GetNamespace(term) #> { var description = _model.GetDescriptionAnnotation(complexType); var clrType = GetClrType(complexType); + var @namespace = GetNamespace(complexType); WriteHeader(); #> -namespace <#= GetNamespace(complexType) #> +namespace <#= @namespace #> { /// <#+ ProcessSummary(description, " "); #> @@ -270,7 +272,7 @@ namespace <#= GetNamespace(complexType) #> public partial class <#= clrType #> : IRecord { <#+ - ProcessPrivateProperties(complexType, complexType.FullName()); + ProcessPrivateProperties(complexType, complexType.FullName(), @namespace); #> /// @@ -280,7 +282,7 @@ namespace <#= GetNamespace(complexType) #> { } <#+ - ProcessBuildMethods(complexType, complexType.FullName(), clrType, description); + ProcessBuildMethods(complexType, complexType.FullName(), clrType, description, @namespace); #> /// @@ -297,10 +299,11 @@ namespace <#= GetNamespace(complexType) #> public void WriteEnum(IEdmEnumType enumType) { var description = _model.GetDescriptionAnnotation(enumType); + var @namespace = GetNamespace(enumType); WriteHeader(); #> -namespace <#= GetNamespace(enumType) #> +namespace <#= @namespace #> { /// <#+ ProcessSummary(description, " "); #> @@ -342,21 +345,28 @@ using Microsoft.OData.Edm.Vocabularies; <#+ } - private void ProcessPrivateProperties(IEdmType type, string fullName, bool allowRecurse = true) + private void ProcessPrivateProperties(IEdmType type, string fullName, string @namespace, bool allowRecurse = true) { var typeKind = type.TypeKind; var actualType = type.AsElementType().AsActualType(); var clrType = GetClrType(actualType, true); var name = fullName.Substring(fullName.LastIndexOf('.') + 1); - if (!_typesToGenerateMap.ContainsKey(actualType)) { _typesToGenerateMap.Add(actualType, false); } + if (actualType.TypeKind == EdmTypeKind.Complex && actualType is IEdmSchemaElement element) + { + var typeName = GetNamespace(element); + if (!typeName.StartsWith(@namespace)) + { + clrType = typeName + "." + clrType; + } + } + if (typeKind == EdmTypeKind.Collection) { - clrType = GetClrType(actualType, false); #> private readonly HashSet<<#= clrType #>> _<#= CamelCase(name) #> = new HashSet<<#= clrType #>>(); <#+ @@ -369,7 +379,7 @@ using Microsoft.OData.Edm.Vocabularies; var complexType = type as IEdmComplexType; foreach (var property in complexType.DeclaredProperties) { - ProcessPrivateProperties(property.Type.Definition, property.Name, false); + ProcessPrivateProperties(property.Type.Definition, property.Name, @namespace, false); } return; @@ -380,7 +390,7 @@ using Microsoft.OData.Edm.Vocabularies; <#+ } - private void ProcessBuildMethods(IEdmType type, string fullName, string returnType, string description, bool allowRecurse = true) + private void ProcessBuildMethods(IEdmType type, string fullName, string returnType, string description, string @namespace, bool allowRecurse = true) { var typeKind = type.TypeKind; var actualType = type.AsElementType().AsActualType(); @@ -388,6 +398,15 @@ using Microsoft.OData.Edm.Vocabularies; var name = fullName.Substring(fullName.LastIndexOf('.') + 1); var camelName = CamelCase(name); + if (actualType.TypeKind == EdmTypeKind.Complex && actualType is IEdmSchemaElement element) + { + var typeName = GetNamespace(element); + if (!typeName.StartsWith(@namespace)) + { + clrType = typeName + "." + clrType; + } + } + if (typeKind == EdmTypeKind.Collection) { #> @@ -418,7 +437,7 @@ using Microsoft.OData.Edm.Vocabularies; foreach (var property in complexType.DeclaredProperties) { description = _model.GetDescriptionAnnotation(property); - ProcessBuildMethods(property.Type.Definition, property.Name, returnType, description, false); + ProcessBuildMethods(property.Type.Definition, property.Name, returnType, description, @namespace, false); } return; @@ -477,7 +496,7 @@ using Microsoft.OData.Edm.Vocabularies; if (type.TypeKind == EdmTypeKind.Complex) { - var term = _model.SchemaElements.OfType().FirstOrDefault(t => t.Type.Definition.AsElementType().AsActualType() == type || t.Type.Definition.AsActualType() == type); + var term = _model.SchemaElements.OfType().FirstOrDefault(t => t.Type.Definition.AsActualType() == type); if (term != null) { clrType = GetClrType(term); From 4bcbf0646af21f3f1f2bf1ed9b5e80dd9d0873a4 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Thu, 18 Jun 2020 00:17:38 +0300 Subject: [PATCH 07/29] Auto generated more progress. --- .../V1/AcceptableEncodingsConfiguration.cs | 18 +- ...tionValuesInQuerySupportedConfiguration.cs | 14 +- ...nchronousRequestsSupportedConfiguration.cs | 14 +- ...chContinueOnErrorSupportedConfiguration.cs | 14 +- .../V1/BatchSupportConfiguration.cs | 48 ++++- .../V1/BatchSupportedConfiguration.cs | 14 +- .../V1/CallbackProtocolConfiguration.cs | 27 ++- .../V1/CallbackSupportedConfiguration.cs | 18 +- .../V1/ChangeTrackingConfiguration.cs | 32 +++- ...ectionPropertyRestrictionsConfiguration.cs | 18 +- ...onPropertyRestrictionsTypeConfiguration.cs | 71 ++++++- .../V1/ComputeSupportedConfiguration.cs | 14 +- .../V1/ConformanceLevelConfiguration.cs | 16 +- .../Capabilities/V1/ConformanceLevelType.cs | 3 +- .../V1/CountRestrictionsConfiguration.cs | 32 +++- .../V1/CrossJoinSupportedConfiguration.cs | 14 +- .../V1/CustomHeadersConfiguration.cs | 18 +- .../V1/CustomParameterConfiguration.cs | 38 +++- .../V1/CustomQueryOptionsConfiguration.cs | 18 +- .../V1/DeepInsertSupportConfiguration.cs | 19 +- .../V1/DeepUpdateSupportConfiguration.cs | 19 +- .../V1/DeleteRestrictionsConfiguration.cs | 75 +++++++- .../V1/ExpandRestrictionsConfiguration.cs | 33 +++- ...rExpressionRestrictionTypeConfiguration.cs | 22 ++- .../V1/FilterFunctionsConfiguration.cs | 18 +- .../V1/FilterRestrictionsConfiguration.cs | 51 ++++- .../V1/IndexableByKeyConfiguration.cs | 14 +- .../V1/InsertRestrictionsConfiguration.cs | 84 ++++++++- .../Capabilities/V1/IsolationLevel.cs | 4 +- .../V1/IsolationSupportedConfiguration.cs | 16 +- .../V1/KeyAsSegmentSupportedConfiguration.cs | 14 +- ...diaLocationUpdateSupportedConfiguration.cs | 14 +- .../ModificationQueryOptionsConfiguration.cs | 39 +++- ...igationPropertyRestrictionConfiguration.cs | 103 +++++++++- .../V1/NavigationRestrictionsConfiguration.cs | 25 ++- .../Capabilities/V1/NavigationType.cs | 3 +- .../V1/OperationRestrictionsConfiguration.cs | 41 +++- .../V1/PermissionTypeConfiguration.cs | 26 ++- .../V1/QuerySegmentSupportedConfiguration.cs | 14 +- .../ReadByKeyRestrictionsTypeConfiguration.cs | 9 +- .../V1/ReadRestrictionsConfiguration.cs | 14 +- .../Capabilities/V1/ScopeTypeConfiguration.cs | 22 ++- .../Capabilities/V1/SearchExpressions.cs | 4 +- .../V1/SearchRestrictionsConfiguration.cs | 21 ++- .../V1/SelectSupportConfiguration.cs | 59 +++++- .../V1/SkipSupportedConfiguration.cs | 14 +- .../V1/SortRestrictionsConfiguration.cs | 41 +++- .../V1/SupportedFormatsConfiguration.cs | 18 +- .../SupportedMetadataFormatsConfiguration.cs | 18 +- .../V1/TopSupportedConfiguration.cs | 14 +- .../V1/UpdateRestrictionsConfiguration.cs | 90 ++++++++- .../V1/PrimitiveExampleValueConfiguration.cs | 17 +- .../Vocabulary/VocabularyConfiguration.cs | 2 + .../Vocabulary/VocabularyConfiguration.tt | 177 ++++++++++++++++-- 54 files changed, 1501 insertions(+), 94 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs index 420c286..9b47d42 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs @@ -43,7 +43,23 @@ public AcceptableEncodingsConfiguration AddAcceptableEncodings(params string[] a /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_acceptableEncodings.Any()) + { + var collection = _acceptableEncodings.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("AcceptableEncodings", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs index e9018d2..90dd4c3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs @@ -39,7 +39,19 @@ public AnnotationValuesInQuerySupportedConfiguration HasAnnotationValuesInQueryS /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_annotationValuesInQuerySupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("AnnotationValuesInQuerySupported", new EdmBooleanConstant(_annotationValuesInQuerySupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs index 93b6125..ebf0b9d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs @@ -39,7 +39,19 @@ public AsynchronousRequestsSupportedConfiguration HasAsynchronousRequestsSupport /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_asynchronousRequestsSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("AsynchronousRequestsSupported", new EdmBooleanConstant(_asynchronousRequestsSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs index ca72c5d..aab1dc0 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs @@ -39,7 +39,19 @@ public BatchContinueOnErrorSupportedConfiguration HasBatchContinueOnErrorSupport /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_batchContinueOnErrorSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("BatchContinueOnErrorSupported", new EdmBooleanConstant(_batchContinueOnErrorSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs index a9f2e7c..5bb68f3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs @@ -115,7 +115,53 @@ public BatchSupportConfiguration AddSupportedFormats(params string[] supportedFo /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_supported.HasValue) + { + properties.Add(new EdmPropertyConstructor("Supported", new EdmBooleanConstant(_supported.Value))); + } + + if (_continueOnErrorSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("ContinueOnErrorSupported", new EdmBooleanConstant(_continueOnErrorSupported.Value))); + } + + if (_referencesInRequestBodiesSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("ReferencesInRequestBodiesSupported", new EdmBooleanConstant(_referencesInRequestBodiesSupported.Value))); + } + + if (_referencesAcrossChangeSetsSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("ReferencesAcrossChangeSetsSupported", new EdmBooleanConstant(_referencesAcrossChangeSetsSupported.Value))); + } + + if (_etagReferencesSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("EtagReferencesSupported", new EdmBooleanConstant(_etagReferencesSupported.Value))); + } + + if (_requestDependencyConditionsSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("RequestDependencyConditionsSupported", new EdmBooleanConstant(_requestDependencyConditionsSupported.Value))); + } + + if (_supportedFormats.Any()) + { + var collection = _supportedFormats.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("SupportedFormats", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs index be84e94..981db23 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs @@ -39,7 +39,19 @@ public BatchSupportedConfiguration HasBatchSupported(bool batchSupported) /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_batchSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("BatchSupported", new EdmBooleanConstant(_batchSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs index 911ba7e..f1c6f55 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs @@ -11,8 +11,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.CallbackProtocol /// public partial class CallbackProtocolConfiguration : IRecord { @@ -63,7 +62,29 @@ public CallbackProtocolConfiguration HasDocumentationUrl(string documentationUrl /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (string.IsNullOrEmpty(_id)) + { + properties.Add(new EdmPropertyConstructor("Id", new EdmStringConstant(_id))); + } + + if (string.IsNullOrEmpty(_urlTemplate)) + { + properties.Add(new EdmPropertyConstructor("UrlTemplate", new EdmStringConstant(_urlTemplate))); + } + + if (string.IsNullOrEmpty(_documentationUrl)) + { + properties.Add(new EdmPropertyConstructor("DocumentationUrl", new EdmStringConstant(_documentationUrl))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs index 7293d4b..513798c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs @@ -43,7 +43,23 @@ public CallbackSupportedConfiguration AddCallbackProtocols(params CallbackProtoc /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_callbackProtocols.Any()) + { + var collection = _callbackProtocols.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CallbackProtocols", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs index 8e36d32..b3e902a 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs @@ -71,7 +71,37 @@ public ChangeTrackingConfiguration AddExpandableProperties(params EdmNavigationP /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_supported.HasValue) + { + properties.Add(new EdmPropertyConstructor("Supported", new EdmBooleanConstant(_supported.Value))); + } + + if (_filterableProperties.Any()) + { + var collection = _filterableProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("FilterableProperties", new EdmCollectionExpression(collection))); + } + } + + if (_expandableProperties.Any()) + { + var collection = _expandableProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("ExpandableProperties", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs index 5d9f5ff..7ecca05 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -43,7 +43,23 @@ public CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrict /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_collectionPropertyRestrictions.Any()) + { + var collection = _collectionPropertyRestrictions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CollectionPropertyRestrictions", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs index 3130910..1095bc7 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -11,8 +11,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.CollectionPropertyRestrictionsType /// public partial class CollectionPropertyRestrictionsTypeConfiguration : IRecord { @@ -163,7 +162,73 @@ public CollectionPropertyRestrictionsTypeConfiguration HasDeletable(bool deletab /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_collectionProperty != null) + { + properties.Add(new EdmPropertyConstructor("CollectionProperty", _collectionProperty)); + } + + if (_filterFunctions.Any()) + { + var collection = _filterFunctions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("FilterFunctions", new EdmCollectionExpression(collection))); + } + } + + if (_filterRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("FilterRestrictions", _filterRestrictions.ToEdmExpression())); + } + + if (_searchRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("SearchRestrictions", _searchRestrictions.ToEdmExpression())); + } + + if (_sortRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("SortRestrictions", _sortRestrictions.ToEdmExpression())); + } + + if (_topSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("TopSupported", new EdmBooleanConstant(_topSupported.Value))); + } + + if (_skipSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("SkipSupported", new EdmBooleanConstant(_skipSupported.Value))); + } + + if (_selectSupport != null) + { + properties.Add(new EdmPropertyConstructor("SelectSupport", _selectSupport.ToEdmExpression())); + } + + if (_insertable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Insertable", new EdmBooleanConstant(_insertable.Value))); + } + + if (_updatable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Updatable", new EdmBooleanConstant(_updatable.Value))); + } + + if (_deletable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Deletable", new EdmBooleanConstant(_deletable.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs index 5708411..767595b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs @@ -39,7 +39,19 @@ public ComputeSupportedConfiguration HasComputeSupported(bool computeSupported) /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_computeSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("ComputeSupported", new EdmBooleanConstant(_computeSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs index 575b8b9..7e720a0 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs @@ -15,7 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class ConformanceLevelConfiguration : VocabularyConfiguration { - private ConformanceLevelType _conformanceLevel; + private ConformanceLevelType? _conformanceLevel; /// /// Creates a new instance of @@ -39,7 +39,19 @@ public ConformanceLevelConfiguration HasConformanceLevel(ConformanceLevelType co /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_conformanceLevel.HasValue) + { + // properties.Add(new EdmPropertyConstructor("ConformanceLevel", new EdmEnumValue(_conformanceLevel.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelType.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelType.cs index 29f6c35..f3aa8d9 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelType.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelType.cs @@ -11,8 +11,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.ConformanceLevelType /// public enum ConformanceLevelType { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs index 33404a4..4d489b1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs @@ -71,7 +71,37 @@ public CountRestrictionsConfiguration AddNonCountableNavigationProperties(params /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_countable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Countable", new EdmBooleanConstant(_countable.Value))); + } + + if (_nonCountableProperties.Any()) + { + var collection = _nonCountableProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("NonCountableProperties", new EdmCollectionExpression(collection))); + } + } + + if (_nonCountableNavigationProperties.Any()) + { + var collection = _nonCountableNavigationProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("NonCountableNavigationProperties", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs index 87dd26c..ed86203 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs @@ -39,7 +39,19 @@ public CrossJoinSupportedConfiguration HasCrossJoinSupported(bool crossJoinSuppo /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_crossJoinSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("CrossJoinSupported", new EdmBooleanConstant(_crossJoinSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs index 1527138..d7fcf69 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs @@ -43,7 +43,23 @@ public CustomHeadersConfiguration AddCustomHeaders(params CustomParameterConfigu /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_customHeaders.Any()) + { + var collection = _customHeaders.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomHeaders", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs index 2dca8e1..3ee2bbe 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs @@ -90,7 +90,43 @@ public CustomParameterConfiguration AddExampleValues(params Microsoft.OData.Mode /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (string.IsNullOrEmpty(_name)) + { + properties.Add(new EdmPropertyConstructor("Name", new EdmStringConstant(_name))); + } + + if (string.IsNullOrEmpty(_description)) + { + properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); + } + + if (string.IsNullOrEmpty(_documentationURL)) + { + properties.Add(new EdmPropertyConstructor("DocumentationURL", new EdmStringConstant(_documentationURL))); + } + + if (_required.HasValue) + { + properties.Add(new EdmPropertyConstructor("Required", new EdmBooleanConstant(_required.Value))); + } + + if (_exampleValues.Any()) + { + var collection = _exampleValues.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("ExampleValues", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs index 6b2b2d3..94f6aba 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -43,7 +43,23 @@ public CustomQueryOptionsConfiguration AddCustomQueryOptions(params CustomParame /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_customQueryOptions.Any()) + { + var collection = _customQueryOptions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomQueryOptions", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs index 3fce28d..1e5a6c4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs @@ -51,7 +51,24 @@ public DeepInsertSupportConfiguration HasContentIDSupported(bool contentIDSuppor /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_supported.HasValue) + { + properties.Add(new EdmPropertyConstructor("Supported", new EdmBooleanConstant(_supported.Value))); + } + + if (_contentIDSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("ContentIDSupported", new EdmBooleanConstant(_contentIDSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs index 69404fa..adf799c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs @@ -51,7 +51,24 @@ public DeepUpdateSupportConfiguration HasContentIDSupported(bool contentIDSuppor /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_supported.HasValue) + { + properties.Add(new EdmPropertyConstructor("Supported", new EdmBooleanConstant(_supported.Value))); + } + + if (_contentIDSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("ContentIDSupported", new EdmBooleanConstant(_contentIDSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs index 180d8b7..cfb2ada 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -163,7 +163,80 @@ public DeleteRestrictionsConfiguration HasLongDescription(string longDescription /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_deletable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Deletable", new EdmBooleanConstant(_deletable.Value))); + } + + if (_nonDeletableNavigationProperties.Any()) + { + var collection = _nonDeletableNavigationProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("NonDeletableNavigationProperties", new EdmCollectionExpression(collection))); + } + } + + if (_maxLevels.HasValue) + { + properties.Add(new EdmPropertyConstructor("MaxLevels", new EdmIntegerConstant(_maxLevels.Value))); + } + + if (_filterSegmentSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("FilterSegmentSupported", new EdmBooleanConstant(_filterSegmentSupported.Value))); + } + + if (_typecastSegmentSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("TypecastSegmentSupported", new EdmBooleanConstant(_typecastSegmentSupported.Value))); + } + + if (_permissions.Any()) + { + var collection = _permissions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("Permissions", new EdmCollectionExpression(collection))); + } + } + + if (_customHeaders.Any()) + { + var collection = _customHeaders.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomHeaders", new EdmCollectionExpression(collection))); + } + } + + if (_customQueryOptions.Any()) + { + var collection = _customQueryOptions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomQueryOptions", new EdmCollectionExpression(collection))); + } + } + + if (string.IsNullOrEmpty(_description)) + { + properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); + } + + if (string.IsNullOrEmpty(_longDescription)) + { + properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs index 696b598..4223864 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs @@ -79,7 +79,38 @@ public ExpandRestrictionsConfiguration HasMaxLevels(int maxLevels) /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_expandable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Expandable", new EdmBooleanConstant(_expandable.Value))); + } + + if (_streamsExpandable.HasValue) + { + properties.Add(new EdmPropertyConstructor("StreamsExpandable", new EdmBooleanConstant(_streamsExpandable.Value))); + } + + if (_nonExpandableProperties.Any()) + { + var collection = _nonExpandableProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("NonExpandableProperties", new EdmCollectionExpression(collection))); + } + } + + if (_maxLevels.HasValue) + { + properties.Add(new EdmPropertyConstructor("MaxLevels", new EdmIntegerConstant(_maxLevels.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs index 5d39f11..70225d4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs @@ -11,8 +11,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.FilterExpressionRestrictionType /// public partial class FilterExpressionRestrictionTypeConfiguration : IRecord { @@ -51,7 +50,24 @@ public FilterExpressionRestrictionTypeConfiguration HasAllowedExpressions(string /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_property != null) + { + properties.Add(new EdmPropertyConstructor("Property", _property)); + } + + if (string.IsNullOrEmpty(_allowedExpressions)) + { + properties.Add(new EdmPropertyConstructor("AllowedExpressions", new EdmStringConstant(_allowedExpressions))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs index 1318e22..b3329af 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs @@ -43,7 +43,23 @@ public FilterFunctionsConfiguration AddFilterFunctions(params string[] filterFun /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_filterFunctions.Any()) + { + var collection = _filterFunctions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("FilterFunctions", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs index 9df88d7..c8b6966 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs @@ -111,7 +111,56 @@ public FilterRestrictionsConfiguration HasMaxLevels(int maxLevels) /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_filterable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Filterable", new EdmBooleanConstant(_filterable.Value))); + } + + if (_requiresFilter.HasValue) + { + properties.Add(new EdmPropertyConstructor("RequiresFilter", new EdmBooleanConstant(_requiresFilter.Value))); + } + + if (_requiredProperties.Any()) + { + var collection = _requiredProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("RequiredProperties", new EdmCollectionExpression(collection))); + } + } + + if (_nonFilterableProperties.Any()) + { + var collection = _nonFilterableProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("NonFilterableProperties", new EdmCollectionExpression(collection))); + } + } + + if (_filterExpressionRestrictions.Any()) + { + var collection = _filterExpressionRestrictions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("FilterExpressionRestrictions", new EdmCollectionExpression(collection))); + } + } + + if (_maxLevels.HasValue) + { + properties.Add(new EdmPropertyConstructor("MaxLevels", new EdmIntegerConstant(_maxLevels.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs index 3682359..e1a5f0d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs @@ -39,7 +39,19 @@ public IndexableByKeyConfiguration HasIndexableByKey(bool indexableByKey) /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_indexableByKey.HasValue) + { + properties.Add(new EdmPropertyConstructor("IndexableByKey", new EdmBooleanConstant(_indexableByKey.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs index 035f403..941181b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -179,7 +179,89 @@ public InsertRestrictionsConfiguration HasLongDescription(string longDescription /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_insertable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Insertable", new EdmBooleanConstant(_insertable.Value))); + } + + if (_nonInsertableProperties.Any()) + { + var collection = _nonInsertableProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("NonInsertableProperties", new EdmCollectionExpression(collection))); + } + } + + if (_nonInsertableNavigationProperties.Any()) + { + var collection = _nonInsertableNavigationProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("NonInsertableNavigationProperties", new EdmCollectionExpression(collection))); + } + } + + if (_maxLevels.HasValue) + { + properties.Add(new EdmPropertyConstructor("MaxLevels", new EdmIntegerConstant(_maxLevels.Value))); + } + + if (_typecastSegmentSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("TypecastSegmentSupported", new EdmBooleanConstant(_typecastSegmentSupported.Value))); + } + + if (_permissions.Any()) + { + var collection = _permissions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("Permissions", new EdmCollectionExpression(collection))); + } + } + + if (_queryOptions != null) + { + properties.Add(new EdmPropertyConstructor("QueryOptions", _queryOptions.ToEdmExpression())); + } + + if (_customHeaders.Any()) + { + var collection = _customHeaders.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomHeaders", new EdmCollectionExpression(collection))); + } + } + + if (_customQueryOptions.Any()) + { + var collection = _customQueryOptions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomQueryOptions", new EdmCollectionExpression(collection))); + } + } + + if (string.IsNullOrEmpty(_description)) + { + properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); + } + + if (string.IsNullOrEmpty(_longDescription)) + { + properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationLevel.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationLevel.cs index 6299cb2..7e9c8e3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationLevel.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationLevel.cs @@ -11,9 +11,9 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.IsolationLevel /// + [Flags] public enum IsolationLevel { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs index 82ede9d..4f8530f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs @@ -15,7 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class IsolationSupportedConfiguration : VocabularyConfiguration { - private IsolationLevel _isolationSupported; + private IsolationLevel? _isolationSupported; /// /// Creates a new instance of @@ -39,7 +39,19 @@ public IsolationSupportedConfiguration HasIsolationSupported(IsolationLevel isol /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_isolationSupported.HasValue) + { + // properties.Add(new EdmPropertyConstructor("IsolationSupported", new EdmEnumValue(_isolationSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs index 037cf92..a1a5cc2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs @@ -39,7 +39,19 @@ public KeyAsSegmentSupportedConfiguration HasKeyAsSegmentSupported(bool keyAsSeg /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_keyAsSegmentSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("KeyAsSegmentSupported", new EdmBooleanConstant(_keyAsSegmentSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs index 3264efb..de7acb9 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs @@ -39,7 +39,19 @@ public MediaLocationUpdateSupportedConfiguration HasMediaLocationUpdateSupported /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_mediaLocationUpdateSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("MediaLocationUpdateSupported", new EdmBooleanConstant(_mediaLocationUpdateSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs index f05acf5..1ae9969 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs @@ -99,7 +99,44 @@ public ModificationQueryOptionsConfiguration HasSortSupported(bool sortSupported /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_expandSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("ExpandSupported", new EdmBooleanConstant(_expandSupported.Value))); + } + + if (_selectSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("SelectSupported", new EdmBooleanConstant(_selectSupported.Value))); + } + + if (_computeSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("ComputeSupported", new EdmBooleanConstant(_computeSupported.Value))); + } + + if (_filterSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("FilterSupported", new EdmBooleanConstant(_filterSupported.Value))); + } + + if (_searchSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("SearchSupported", new EdmBooleanConstant(_searchSupported.Value))); + } + + if (_sortSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("SortSupported", new EdmBooleanConstant(_sortSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs index fb02bc4..35a27aa 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -11,13 +11,12 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.NavigationPropertyRestriction /// public partial class NavigationPropertyRestrictionConfiguration : IRecord { private EdmNavigationPropertyPathExpression _navigationProperty; - private NavigationType _navigability; + private NavigationType? _navigability; private readonly HashSet _filterFunctions = new HashSet(); private FilterRestrictionsConfiguration _filterRestrictions; private SearchRestrictionsConfiguration _searchRestrictions; @@ -235,7 +234,103 @@ public NavigationPropertyRestrictionConfiguration HasReadRestrictions(ReadRestri /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_navigationProperty != null) + { + properties.Add(new EdmPropertyConstructor("NavigationProperty", _navigationProperty)); + } + + if (_navigability.HasValue) + { + // properties.Add(new EdmPropertyConstructor("Navigability", new EdmEnumValue(_navigability.Value))); + } + + if (_filterFunctions.Any()) + { + var collection = _filterFunctions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("FilterFunctions", new EdmCollectionExpression(collection))); + } + } + + if (_filterRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("FilterRestrictions", _filterRestrictions.ToEdmExpression())); + } + + if (_searchRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("SearchRestrictions", _searchRestrictions.ToEdmExpression())); + } + + if (_sortRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("SortRestrictions", _sortRestrictions.ToEdmExpression())); + } + + if (_topSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("TopSupported", new EdmBooleanConstant(_topSupported.Value))); + } + + if (_skipSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("SkipSupported", new EdmBooleanConstant(_skipSupported.Value))); + } + + if (_selectSupport != null) + { + properties.Add(new EdmPropertyConstructor("SelectSupport", _selectSupport.ToEdmExpression())); + } + + if (_indexableByKey.HasValue) + { + properties.Add(new EdmPropertyConstructor("IndexableByKey", new EdmBooleanConstant(_indexableByKey.Value))); + } + + if (_insertRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("InsertRestrictions", _insertRestrictions.ToEdmExpression())); + } + + if (_deepInsertSupport != null) + { + properties.Add(new EdmPropertyConstructor("DeepInsertSupport", _deepInsertSupport.ToEdmExpression())); + } + + if (_updateRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("UpdateRestrictions", _updateRestrictions.ToEdmExpression())); + } + + if (_deepUpdateSupport != null) + { + properties.Add(new EdmPropertyConstructor("DeepUpdateSupport", _deepUpdateSupport.ToEdmExpression())); + } + + if (_deleteRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("DeleteRestrictions", _deleteRestrictions.ToEdmExpression())); + } + + if (_optimisticConcurrencyControl.HasValue) + { + properties.Add(new EdmPropertyConstructor("OptimisticConcurrencyControl", new EdmBooleanConstant(_optimisticConcurrencyControl.Value))); + } + + if (_readRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("ReadRestrictions", _readRestrictions.ToEdmExpression())); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs index 2f4910b..58fa051 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -15,7 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class NavigationRestrictionsConfiguration : VocabularyConfiguration { - private NavigationType _navigability; + private NavigationType? _navigability; private readonly HashSet _restrictedProperties = new HashSet(); /// @@ -55,7 +55,28 @@ public NavigationRestrictionsConfiguration AddRestrictedProperties(params Naviga /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_navigability.HasValue) + { + // properties.Add(new EdmPropertyConstructor("Navigability", new EdmEnumValue(_navigability.Value))); + } + + if (_restrictedProperties.Any()) + { + var collection = _restrictedProperties.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("RestrictedProperties", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationType.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationType.cs index f86e57d..faf6ba5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationType.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationType.cs @@ -11,8 +11,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.NavigationType /// public enum NavigationType { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs index 44aae2b..66144b2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -87,7 +87,46 @@ public OperationRestrictionsConfiguration AddCustomQueryOptions(params CustomPar /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_filterSegmentSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("FilterSegmentSupported", new EdmBooleanConstant(_filterSegmentSupported.Value))); + } + + if (_permissions.Any()) + { + var collection = _permissions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("Permissions", new EdmCollectionExpression(collection))); + } + } + + if (_customHeaders.Any()) + { + var collection = _customHeaders.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomHeaders", new EdmCollectionExpression(collection))); + } + } + + if (_customQueryOptions.Any()) + { + var collection = _customQueryOptions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomQueryOptions", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs index 53326cb..3882ed4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs @@ -11,8 +11,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.PermissionType /// public partial class PermissionTypeConfiguration : IRecord { @@ -55,7 +54,28 @@ public PermissionTypeConfiguration AddScopes(params ScopeTypeConfiguration[] sco /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (string.IsNullOrEmpty(_schemeName)) + { + properties.Add(new EdmPropertyConstructor("SchemeName", new EdmStringConstant(_schemeName))); + } + + if (_scopes.Any()) + { + var collection = _scopes.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("Scopes", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs index 4b06131..48d51a6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs @@ -39,7 +39,19 @@ public QuerySegmentSupportedConfiguration HasQuerySegmentSupported(bool querySeg /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_querySegmentSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("QuerySegmentSupported", new EdmBooleanConstant(_querySegmentSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index 09f30c4..a4e173b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -26,7 +26,14 @@ public ReadByKeyRestrictionsTypeConfiguration() /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs index c6c14dc..6565c79 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -39,7 +39,19 @@ public ReadRestrictionsConfiguration HasReadByKeyRestrictions(ReadByKeyRestricti /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_readByKeyRestrictions != null) + { + properties.Add(new EdmPropertyConstructor("ReadByKeyRestrictions", _readByKeyRestrictions.ToEdmExpression())); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs index 1559c8f..a539aba 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs @@ -11,8 +11,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.ScopeType /// public partial class ScopeTypeConfiguration : IRecord { @@ -51,7 +50,24 @@ public ScopeTypeConfiguration HasRestrictedProperties(string restrictedPropertie /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (string.IsNullOrEmpty(_scope)) + { + properties.Add(new EdmPropertyConstructor("Scope", new EdmStringConstant(_scope))); + } + + if (string.IsNullOrEmpty(_restrictedProperties)) + { + properties.Add(new EdmPropertyConstructor("RestrictedProperties", new EdmStringConstant(_restrictedProperties))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs index 698273a..58b5c30 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs @@ -11,9 +11,9 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// - /// Summary -/// + /// Org.OData.Capabilities.V1.SearchExpressions /// + [Flags] public enum SearchExpressions { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs index b2ab1f3..4b2a902 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs @@ -16,7 +16,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 public partial class SearchRestrictionsConfiguration : VocabularyConfiguration { private bool? _searchable; - private SearchExpressions _unsupportedExpressions; + private SearchExpressions? _unsupportedExpressions; /// /// Creates a new instance of @@ -51,7 +51,24 @@ public SearchRestrictionsConfiguration HasUnsupportedExpressions(SearchExpressio /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_searchable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Searchable", new EdmBooleanConstant(_searchable.Value))); + } + + if (_unsupportedExpressions.HasValue) + { + // properties.Add(new EdmPropertyConstructor("UnsupportedExpressions", new EdmEnumValue(_unsupportedExpressions.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs index 115c729..2332a84 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs @@ -147,7 +147,64 @@ public SelectSupportConfiguration HasSortable(bool sortable) /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_supported.HasValue) + { + properties.Add(new EdmPropertyConstructor("Supported", new EdmBooleanConstant(_supported.Value))); + } + + if (_instanceAnnotationsSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("InstanceAnnotationsSupported", new EdmBooleanConstant(_instanceAnnotationsSupported.Value))); + } + + if (_expandable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Expandable", new EdmBooleanConstant(_expandable.Value))); + } + + if (_filterable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Filterable", new EdmBooleanConstant(_filterable.Value))); + } + + if (_searchable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Searchable", new EdmBooleanConstant(_searchable.Value))); + } + + if (_topSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("TopSupported", new EdmBooleanConstant(_topSupported.Value))); + } + + if (_skipSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("SkipSupported", new EdmBooleanConstant(_skipSupported.Value))); + } + + if (_computeSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("ComputeSupported", new EdmBooleanConstant(_computeSupported.Value))); + } + + if (_countable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Countable", new EdmBooleanConstant(_countable.Value))); + } + + if (_sortable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Sortable", new EdmBooleanConstant(_sortable.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs index 037292b..21bb99e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs @@ -39,7 +39,19 @@ public SkipSupportedConfiguration HasSkipSupported(bool skipSupported) /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_skipSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("SkipSupported", new EdmBooleanConstant(_skipSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs index 9a2e3ec..852ce34 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs @@ -87,7 +87,46 @@ public SortRestrictionsConfiguration AddNonSortableProperties(params EdmProperty /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_sortable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Sortable", new EdmBooleanConstant(_sortable.Value))); + } + + if (_ascendingOnlyProperties.Any()) + { + var collection = _ascendingOnlyProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("AscendingOnlyProperties", new EdmCollectionExpression(collection))); + } + } + + if (_descendingOnlyProperties.Any()) + { + var collection = _descendingOnlyProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("DescendingOnlyProperties", new EdmCollectionExpression(collection))); + } + } + + if (_nonSortableProperties.Any()) + { + var collection = _nonSortableProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("NonSortableProperties", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs index 9fe3e10..17ccecc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs @@ -43,7 +43,23 @@ public SupportedFormatsConfiguration AddSupportedFormats(params string[] support /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_supportedFormats.Any()) + { + var collection = _supportedFormats.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("SupportedFormats", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs index 813a436..43e3694 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs @@ -43,7 +43,23 @@ public SupportedMetadataFormatsConfiguration AddSupportedMetadataFormats(params /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_supportedMetadataFormats.Any()) + { + var collection = _supportedMetadataFormats.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("SupportedMetadataFormats", new EdmCollectionExpression(collection))); + } + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs index 2564db6..688f17c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs @@ -39,7 +39,19 @@ public TopSupportedConfiguration HasTopSupported(bool topSupported) /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_topSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("TopSupported", new EdmBooleanConstant(_topSupported.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs index 8f110b7..090e5a5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -199,7 +199,95 @@ public UpdateRestrictionsConfiguration HasLongDescription(string longDescription /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_updatable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Updatable", new EdmBooleanConstant(_updatable.Value))); + } + + if (_upsertable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Upsertable", new EdmBooleanConstant(_upsertable.Value))); + } + + if (_deltaUpdateSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("DeltaUpdateSupported", new EdmBooleanConstant(_deltaUpdateSupported.Value))); + } + + if (_filterSegmentSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("FilterSegmentSupported", new EdmBooleanConstant(_filterSegmentSupported.Value))); + } + + if (_typecastSegmentSupported.HasValue) + { + properties.Add(new EdmPropertyConstructor("TypecastSegmentSupported", new EdmBooleanConstant(_typecastSegmentSupported.Value))); + } + + if (_nonUpdatableNavigationProperties.Any()) + { + var collection = _nonUpdatableNavigationProperties.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("NonUpdatableNavigationProperties", new EdmCollectionExpression(collection))); + } + } + + if (_maxLevels.HasValue) + { + properties.Add(new EdmPropertyConstructor("MaxLevels", new EdmIntegerConstant(_maxLevels.Value))); + } + + if (_permissions.Any()) + { + var collection = _permissions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("Permissions", new EdmCollectionExpression(collection))); + } + } + + if (_queryOptions != null) + { + properties.Add(new EdmPropertyConstructor("QueryOptions", _queryOptions.ToEdmExpression())); + } + + if (_customHeaders.Any()) + { + var collection = _customHeaders.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomHeaders", new EdmCollectionExpression(collection))); + } + } + + if (_customQueryOptions.Any()) + { + var collection = _customQueryOptions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomQueryOptions", new EdmCollectionExpression(collection))); + } + } + + if (string.IsNullOrEmpty(_description)) + { + properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); + } + + if (string.IsNullOrEmpty(_longDescription)) + { + properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs index fb1f5ec..016d62f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs @@ -11,8 +11,7 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 { /// - /// Summary -/// + /// Org.OData.Core.V1.PrimitiveExampleValue /// public partial class PrimitiveExampleValueConfiguration : IRecord { @@ -39,7 +38,19 @@ public PrimitiveExampleValueConfiguration HasValue(object value) /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + + if (_value.HasValue) + { + properties.Add(new EdmPropertyConstructor("Value", new EdmPrimitiveTypeConstant(_value.Value))); + } + + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs index ee7346e..2196173 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs @@ -73,6 +73,8 @@ public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnot /// public static class VocabularyConfigurationExtensions { + internal static IEdmExpression ToEdmExpression(this string text) + => string.IsNullOrEmpty(text) ? null: new EdmStringConstant(text); /// /// configuration /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt index b97883a..8016716 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt @@ -99,6 +99,8 @@ namespace Microsoft.OData.ModelBuilder /// public static class VocabularyConfigurationExtensions { + internal static IEdmExpression ToEdmExpression(this string text) + => string.IsNullOrEmpty(text) ? null: new EdmStringConstant(text); <# foreach (var term in model.SchemaElements.OfType()) { @@ -231,9 +233,7 @@ namespace <#= @namespace #> /// public partial class <#= clrType #> : VocabularyConfiguration { -<#+ - ProcessPrivateProperties(term.Type.Definition, term.FullName(), @namespace); -#> +<#+ ProcessPrivateProperties(term.Type.Definition, term.FullName(), @namespace); #> /// /// Creates a new instance of @@ -242,14 +242,20 @@ namespace <#= @namespace #> : base("<#= term.FullName()#>") { } -<#+ - ProcessBuildMethods(term.Type.Definition, term.FullName(), clrType, description, @namespace); -#> +<#+ ProcessBuildMethods(term.Type.Definition, term.FullName(), clrType, description, @namespace); #> /// public override IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + +<#+ ProcessEdmProperties(term.Type.Definition, term.FullName(), clrType, description, @namespace); #> + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } @@ -267,13 +273,11 @@ namespace <#= @namespace #> namespace <#= @namespace #> { /// - <#+ ProcessSummary(description, " "); #> + <#+ ProcessSummary(description ?? complexType.FullName(), " "); #> /// public partial class <#= clrType #> : IRecord { -<#+ - ProcessPrivateProperties(complexType, complexType.FullName(), @namespace); -#> +<#+ ProcessPrivateProperties(complexType, complexType.FullName(), @namespace); #> /// /// Creates a new instance of @@ -281,14 +285,20 @@ namespace <#= @namespace #> public <#= clrType #>() { } -<#+ - ProcessBuildMethods(complexType, complexType.FullName(), clrType, description, @namespace); -#> +<#+ ProcessBuildMethods(complexType, complexType.FullName(), clrType, description, @namespace); #> /// public IEdmExpression ToEdmExpression() { - return null; + var properties = new List(); + +<#+ ProcessEdmProperties(complexType, complexType.FullName(), clrType, description, @namespace); #> + if (!properties.Any()) + { + return null; + } + + return new EdmRecordExpression(properties); } } } @@ -298,7 +308,7 @@ namespace <#= @namespace #> public void WriteEnum(IEdmEnumType enumType) { - var description = _model.GetDescriptionAnnotation(enumType); + var description = _model.GetDescriptionAnnotation(enumType) ?? enumType.FullName(); var @namespace = GetNamespace(enumType); WriteHeader(); @@ -308,6 +318,14 @@ namespace <#= @namespace #> /// <#+ ProcessSummary(description, " "); #> /// +<#+ + if (enumType.IsFlags) + { +#> + [Flags] +<#+ + } +#> public enum <#= enumType.Name #> { <#+ @@ -458,11 +476,131 @@ using Microsoft.OData.Edm.Vocabularies; <#+ } + private void ProcessEdmProperties(IEdmType type, string fullName, string returnType, string description, string @namespace, bool allowRecurse = true) + { + var typeKind = type.TypeKind; + var actualType = type.AsElementType().AsActualType(); + var clrType = GetClrType(actualType, false); + var name = fullName.Substring(fullName.LastIndexOf('.') + 1); + var camelName = CamelCase(name); + + if (actualType.TypeKind == EdmTypeKind.Complex && actualType is IEdmSchemaElement element) + { + var typeName = GetNamespace(element); + if (!typeName.StartsWith(@namespace)) + { + clrType = typeName + "." + clrType; + } + } + + if (typeKind == EdmTypeKind.Collection) + { + if (actualType.TypeKind == EdmTypeKind.Path) + { +#> + if (_<#= camelName #>.Any()) + { + var collection = _<#= camelName #>.Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmCollectionExpression(collection))); + } + } + +<#+ + } + else + { +#> + if (_<#= camelName #>.Any()) + { + var collection = _<#= camelName #>.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmCollectionExpression(collection))); + } + } + +<#+ + } + } + else if (typeKind == EdmTypeKind.Complex) + { + if (allowRecurse) + { + var complexType = type as IEdmComplexType; + foreach (var property in complexType.DeclaredProperties) + { + description = _model.GetDescriptionAnnotation(property); + ProcessEdmProperties(property.Type.Definition, property.Name, returnType, description, @namespace, false); + } + } + else + { +#> + if (_<#= camelName #> != null) + { + properties.Add(new EdmPropertyConstructor("<#= name #>", _<#= camelName #>.ToEdmExpression())); + } + +<#+ + } + } + else if (type.TypeKind == EdmTypeKind.Path) + { +#> + if (_<#= camelName #> != null) + { + properties.Add(new EdmPropertyConstructor("<#= name #>", _<#= camelName #>)); + } + +<#+ + } + else + { + if (clrType == "string") + { +#> + if (string.IsNullOrEmpty(_<#= camelName #>)) + { + properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmStringConstant(_<#= camelName #>))); + } + +<#+ + } + else if (actualType.TypeKind == EdmTypeKind.Enum) + { +#> + if (_<#= camelName #>.HasValue) + { + // properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmEnumValue(_<#= camelName #>.Value))); + } + +<#+ + } + else + { + var fullTypeName = actualType.FullTypeName(); + var edmTypeConstant = fullTypeName.Replace(".", string.Empty) + "Constant"; + if (fullTypeName == "Edm.Int32") + { + edmTypeConstant = "EdmIntegerConstant"; + } +#> + if (_<#= camelName #>.HasValue) + { + properties.Add(new EdmPropertyConstructor("<#= name #>", new <#= edmTypeConstant#>(_<#= camelName #>.Value))); + } + +<#+ + } + } + } + private string GetClrType(IEdmTerm term) => GetFileDetails(term).ClrType; private string GetClrType(IEdmType type, bool nullable = false) { - var suffix = nullable ? "?" : string.Empty; if (_typesClrMap.TryGetValue(type, out var clrType)) { return AddSuffix(clrType); @@ -518,7 +656,7 @@ using Microsoft.OData.Edm.Vocabularies; return clr; } - if (clr == "bool" || clr == "int") + if (clr == "bool" || clr == "int" || type.TypeKind == EdmTypeKind.Enum) { return clr + "?"; } @@ -543,8 +681,9 @@ using Microsoft.OData.Edm.Vocabularies; if (string.IsNullOrEmpty(text)) { WriteLine("/// Summary"); + return; } - var lines = text?.Split(new char[] { '\r', '\n' }) ?? new string[0]; + var lines = text.Split(new char[] { '\r', '\n' }) ?? new string[0]; WriteLine($"/// {lines.FirstOrDefault()}"); foreach (var line in lines.Skip(1)) { From 9849041501e08f31546fa155755d34ec35b70b42 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Thu, 18 Jun 2020 00:45:00 +0300 Subject: [PATCH 08/29] Generating base types. --- .../ReadByKeyRestrictionsTypeConfiguration.cs | 126 ++++++++++++++++++ .../V1/ReadRestrictionsConfiguration.cs | 126 ++++++++++++++++++ .../V1/PrimitiveExampleValueConfiguration.cs | 21 ++- .../Vocabulary/VocabularyConfiguration.tt | 61 +++++++-- 4 files changed, 320 insertions(+), 14 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index a4e173b..da7fc0e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -15,6 +15,12 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class ReadByKeyRestrictionsTypeConfiguration : IRecord { + private bool? _readable; + private readonly HashSet _permissions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); + private string _description; + private string _longDescription; /// /// Creates a new instance of @@ -23,11 +29,131 @@ public ReadByKeyRestrictionsTypeConfiguration() { } + /// + /// Entities can be retrieved + /// + /// The value to set + /// + public ReadByKeyRestrictionsTypeConfiguration HasReadable(bool readable) + { + _readable = readable; + return this; + } + + /// + /// Required permissions. One of the specified sets of scopes is required to read. + /// + /// The value(s) to set + /// + public ReadByKeyRestrictionsTypeConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + { + foreach (var item in permissions) + { + _ = _permissions.Add(item); + } + + return this; + } + + /// + /// Supported or required custom headers + /// + /// The value(s) to set + /// + public ReadByKeyRestrictionsTypeConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + { + foreach (var item in customHeaders) + { + _ = _customHeaders.Add(item); + } + + return this; + } + + /// + /// Supported or required custom query options + /// + /// The value(s) to set + /// + public ReadByKeyRestrictionsTypeConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + { + foreach (var item in customQueryOptions) + { + _ = _customQueryOptions.Add(item); + } + + return this; + } + + /// + /// A brief description of the request + /// + /// The value to set + /// + public ReadByKeyRestrictionsTypeConfiguration HasDescription(string description) + { + _description = description; + return this; + } + + /// + /// A lengthy description of the request + /// + /// The value to set + /// + public ReadByKeyRestrictionsTypeConfiguration HasLongDescription(string longDescription) + { + _longDescription = longDescription; + return this; + } + /// public IEdmExpression ToEdmExpression() { var properties = new List(); + if (_readable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Readable", new EdmBooleanConstant(_readable.Value))); + } + + if (_permissions.Any()) + { + var collection = _permissions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("Permissions", new EdmCollectionExpression(collection))); + } + } + + if (_customHeaders.Any()) + { + var collection = _customHeaders.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomHeaders", new EdmCollectionExpression(collection))); + } + } + + if (_customQueryOptions.Any()) + { + var collection = _customQueryOptions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomQueryOptions", new EdmCollectionExpression(collection))); + } + } + + if (string.IsNullOrEmpty(_description)) + { + properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); + } + + if (string.IsNullOrEmpty(_longDescription)) + { + properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); + } + if (!properties.Any()) { return null; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs index 6565c79..6571412 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -15,6 +15,12 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public partial class ReadRestrictionsConfiguration : VocabularyConfiguration { + private bool? _readable; + private readonly HashSet _permissions = new HashSet(); + private readonly HashSet _customHeaders = new HashSet(); + private readonly HashSet _customQueryOptions = new HashSet(); + private string _description; + private string _longDescription; private ReadByKeyRestrictionsTypeConfiguration _readByKeyRestrictions; /// @@ -25,6 +31,84 @@ public ReadRestrictionsConfiguration() { } + /// + /// Entities can be retrieved + /// + /// The value to set + /// + public ReadRestrictionsConfiguration HasReadable(bool readable) + { + _readable = readable; + return this; + } + + /// + /// Required permissions. One of the specified sets of scopes is required to read. + /// + /// The value(s) to set + /// + public ReadRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + { + foreach (var item in permissions) + { + _ = _permissions.Add(item); + } + + return this; + } + + /// + /// Supported or required custom headers + /// + /// The value(s) to set + /// + public ReadRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + { + foreach (var item in customHeaders) + { + _ = _customHeaders.Add(item); + } + + return this; + } + + /// + /// Supported or required custom query options + /// + /// The value(s) to set + /// + public ReadRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + { + foreach (var item in customQueryOptions) + { + _ = _customQueryOptions.Add(item); + } + + return this; + } + + /// + /// A brief description of the request + /// + /// The value to set + /// + public ReadRestrictionsConfiguration HasDescription(string description) + { + _description = description; + return this; + } + + /// + /// A lengthy description of the request + /// + /// The value to set + /// + public ReadRestrictionsConfiguration HasLongDescription(string longDescription) + { + _longDescription = longDescription; + return this; + } + /// /// Restrictions for retrieving an entity by key /// @@ -41,6 +125,48 @@ public override IEdmExpression ToEdmExpression() { var properties = new List(); + if (_readable.HasValue) + { + properties.Add(new EdmPropertyConstructor("Readable", new EdmBooleanConstant(_readable.Value))); + } + + if (_permissions.Any()) + { + var collection = _permissions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("Permissions", new EdmCollectionExpression(collection))); + } + } + + if (_customHeaders.Any()) + { + var collection = _customHeaders.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomHeaders", new EdmCollectionExpression(collection))); + } + } + + if (_customQueryOptions.Any()) + { + var collection = _customQueryOptions.Select(item => item.ToEdmExpression()).Where(item => item != null); + if (collection.Any()) + { + properties.Add(new EdmPropertyConstructor("CustomQueryOptions", new EdmCollectionExpression(collection))); + } + } + + if (string.IsNullOrEmpty(_description)) + { + properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); + } + + if (string.IsNullOrEmpty(_longDescription)) + { + properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); + } + if (_readByKeyRestrictions != null) { properties.Add(new EdmPropertyConstructor("ReadByKeyRestrictions", _readByKeyRestrictions.ToEdmExpression())); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs index 016d62f..90cc9ac 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs @@ -15,6 +15,7 @@ namespace Microsoft.OData.ModelBuilder.Core.V1 /// public partial class PrimitiveExampleValueConfiguration : IRecord { + private string _description; private object _value; /// @@ -24,6 +25,17 @@ public PrimitiveExampleValueConfiguration() { } + /// + /// Description of the example value + /// + /// The value to set + /// + public PrimitiveExampleValueConfiguration HasDescription(string description) + { + _description = description; + return this; + } + /// /// Example value for the custom parameter /// @@ -40,9 +52,14 @@ public IEdmExpression ToEdmExpression() { var properties = new List(); - if (_value.HasValue) + if (string.IsNullOrEmpty(_description)) + { + properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); + } + + if (_value != null) { - properties.Add(new EdmPropertyConstructor("Value", new EdmPrimitiveTypeConstant(_value.Value))); + // properties.Add(new EdmPropertyConstructor("Value", new EdmPrimitiveConstant(_value.Value))); } if (!properties.Any()) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt index 8016716..f6ad4a1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt @@ -395,7 +395,7 @@ using Microsoft.OData.Edm.Vocabularies; if (allowRecurse) { var complexType = type as IEdmComplexType; - foreach (var property in complexType.DeclaredProperties) + foreach (var property in complexType.Properties()) { ProcessPrivateProperties(property.Type.Definition, property.Name, @namespace, false); } @@ -452,7 +452,7 @@ using Microsoft.OData.Edm.Vocabularies; if (allowRecurse) { var complexType = type as IEdmComplexType; - foreach (var property in complexType.DeclaredProperties) + foreach (var property in complexType.Properties()) { description = _model.GetDescriptionAnnotation(property); ProcessBuildMethods(property.Type.Definition, property.Name, returnType, description, @namespace, false); @@ -483,6 +483,7 @@ using Microsoft.OData.Edm.Vocabularies; var clrType = GetClrType(actualType, false); var name = fullName.Substring(fullName.LastIndexOf('.') + 1); var camelName = CamelCase(name); + var fullTypeName = actualType.FullTypeName(); if (actualType.TypeKind == EdmTypeKind.Complex && actualType is IEdmSchemaElement element) { @@ -529,7 +530,7 @@ using Microsoft.OData.Edm.Vocabularies; if (allowRecurse) { var complexType = type as IEdmComplexType; - foreach (var property in complexType.DeclaredProperties) + foreach (var property in complexType.Properties()) { description = _model.GetDescriptionAnnotation(property); ProcessEdmProperties(property.Type.Definition, property.Name, returnType, description, @namespace, false); @@ -556,9 +557,19 @@ using Microsoft.OData.Edm.Vocabularies; <#+ } - else + else if (actualType.TypeKind == EdmTypeKind.Enum) + { +#> + if (_<#= camelName #>.HasValue) + { + // properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmEnumValue(_<#= camelName #>.Value))); + } + +<#+ + } + else if (actualType.TypeKind == EdmTypeKind.Primitive) { - if (clrType == "string") + if (fullTypeName == "Edm.String") { #> if (string.IsNullOrEmpty(_<#= camelName #>)) @@ -568,24 +579,39 @@ using Microsoft.OData.Edm.Vocabularies; <#+ } - else if (actualType.TypeKind == EdmTypeKind.Enum) + else if (fullTypeName == "Edm.PrimitiveType") + { +#> + if (_<#= camelName #> != null) + { + // properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmPrimitiveConstant(_<#= camelName #>.Value))); + } + +<#+ + } + else if (fullTypeName == "Edm.Int32") { #> if (_<#= camelName #>.HasValue) { - // properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmEnumValue(_<#= camelName #>.Value))); + properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmIntegerConstant(_<#= camelName #>.Value))); + } + +<#+ + } + else if (fullTypeName == "Edm.Boolean") + { +#> + if (_<#= camelName #>.HasValue) + { + properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmBooleanConstant(_<#= camelName #>.Value))); } <#+ } else { - var fullTypeName = actualType.FullTypeName(); var edmTypeConstant = fullTypeName.Replace(".", string.Empty) + "Constant"; - if (fullTypeName == "Edm.Int32") - { - edmTypeConstant = "EdmIntegerConstant"; - } #> if (_<#= camelName #>.HasValue) { @@ -595,6 +621,17 @@ using Microsoft.OData.Edm.Vocabularies; <#+ } } + else + { + var edmTypeConstant = fullTypeName.Replace(".", string.Empty) + "Constant"; +#> + if (_<#= camelName #>.HasValue) + { + properties.Add(new EdmPropertyConstructor("<#= name #>", new <#= edmTypeConstant#>(_<#= camelName #>.Value))); + } + +<#+ + } } private string GetClrType(IEdmTerm term) => GetFileDetails(term).ClrType; From 308bcd07c869167fc9d5f104dc4b6995fc266f16 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Thu, 18 Jun 2020 00:48:33 +0300 Subject: [PATCH 09/29] bsl and xml. --- .../Microsoft.OData.ModelBuilder.xml | 1990 +++++++++++++---- ...Microsoft.OData.ModelBuilder.PublicApi.bsl | 551 +++-- 2 files changed, 1969 insertions(+), 572 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml index 04b8ae9..29c9001 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml @@ -1219,10 +1219,10 @@ Gets the name of this navigation source. - + Vocabulary builders to annotate this - + @@ -5111,863 +5111,2097 @@ This entity set supports the expand expressions. These properties cannot be used in $expand expressions. - + List of acceptable compression methods for ($batch) requests, e.g. gzip - + + + Creates a new instance of + + + - Creates a new instance of + List of acceptable compression methods for ($batch) requests, e.g. gzip + The value(s) to set + - + - + Supports annotation values within system query options - + + + Creates a new instance of + + + - Creates a new instance of + Supports annotation values within system query options + The value to set + - + - + Service supports the asynchronous request preference - + + + Creates a new instance of + + + - Creates a new instance of + Service supports the asynchronous request preference + The value to set + - + - + Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. - + + + Creates a new instance of + + + - Creates a new instance of + Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. + The value to set + - + - + Batch Support for the service - + - Creates a new instance of + Creates a new instance of - - + + + Service supports requests to $batch + + The value to set + - + - Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. + Service supports the continue on error preference + The value to set + - + - Creates a new instance of + Service supports Content-ID referencing in request bodies + The value to set + - - + + + Service supports Content-ID referencing across change sets + + The value to set + - + - Supports callbacks for the specified protocols + Service supports referencing Etags from previous requests + + The value to set + + + + + Service supports the `if` member in JSON batch requests + The value to set + - + - Creates a new instance of + Media types of supported formats for $batch + The value(s) to set + - + - + - Change tracking capabilities of this service or entity set + Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. + + + + + Creates a new instance of - + - Creates a new instance of + Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. + The value to set + - + - + - Describes restrictions on operations applied to collection-valued structural properties + Org.OData.Capabilities.V1.CallbackProtocol - + - Creates a new instance of + Creates a new instance of - - + + + Protocol Identifier + + The value to set + - + - Supports $compute + URL Template including parameters. Parameters are enclosed in curly braces {} as defined in RFC6570 + The value to set + - + - Creates a new instance of + Human readable description of the meaning of the URL Template parameters + The value to set + - + - + - The conformance level achieved by this service + Supports callbacks for the specified protocols + + + + + Creates a new instance of - + - Creates a new instance of + List of supported callback protocols, e.g. `http` or `wss` + The value(s) to set + - + - + - Restrictions on /$count path suffix and $count=true system query option + Change tracking capabilities of this service or entity set - + - Creates a new instance of + Creates a new instance of - - + + + This entity set supports the odata.track-changes preference + + The value to set + - + - Supports cross joins for the entity sets in this container + Change tracking supports filters on these properties + The value(s) to set + - + - Creates a new instance of + Change tracking supports these properties expanded + The value(s) to set + - + - + - Custom headers that are supported/required for the annotated resource + Describes restrictions on operations applied to collection-valued structural properties - + - Creates a new instance of + Creates a new instance of + + + + + Describes restrictions on operations applied to collection-valued structural properties + The value(s) to set + - + - + - Custom query options that are supported/required for the annotated resource + Org.OData.Capabilities.V1.CollectionPropertyRestrictionsType - + - Creates a new instance of + Creates a new instance of - - + + + Restricted Collection-valued property + + The value to set + - + - Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + List of functions and operators supported in filter expressions. + The value(s) to set + - + - Creates a new instance of + Restrictions on filter expressions + The value to set + - - + + + Restrictions on search expressions + + The value to set + - + - Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + Restrictions on orderby expressions + The value to set + - + - Creates a new instance of + Supports $top + The value to set + - - + + + Supports $skip + + The value to set + - + - Restrictions on delete operations + Support for $select + + The value to set + + + + + Members can be inserted into this collection + + The value to set + + + + + Members of this ordered collection can be updated by ordinal + The value to set + - + - Creates a new instance of + Members of this ordered collection can be deleted by ordinal + The value to set + - + - + - Restrictions on expand expressions + Supports $compute + + + + + Creates a new instance of - + - Creates a new instance of + Supports $compute + The value to set + - + - + - List of functions and operators supported in filter expressions. + The conformance level achieved by this service + + + + + Creates a new instance of - + - Creates a new instance of + The conformance level achieved by this service + The value to set + - + - + - Restrictions on filter expressions + Org.OData.Capabilities.V1.ConformanceLevelType - + - Creates a new instance of + Minimal conformance level - - + + + Intermediate conformance level + - + - Supports key values according to OData URL conventions + Advanced conformance level - + - Creates a new instance of + Restrictions on /$count path suffix and $count=true system query option - - + + + Creates a new instance of + - + - Restrictions on insert operations + Entities can be counted + + The value to set + + + + + These collection properties do not allow /$count segments + The value(s) to set + - + - Creates a new instance of + These navigation properties do not allow /$count segments + The value(s) to set + - + - + - Supported odata.isolation levels + Supports cross joins for the entity sets in this container - + - Creates a new instance of + Creates a new instance of + + + + + Supports cross joins for the entity sets in this container + The value to set + - + - + - Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection + Custom headers that are supported/required for the annotated resource + + + + + Creates a new instance of - + - Creates a new instance of + Custom headers that are supported/required for the annotated resource + The value(s) to set + - + - + - Stream property supports update of its media edit URL and/or media read URL + A custom parameter is either a header or a query option - + - Creates a new instance of + Creates a new instance of - - + + + Name of the custom parameter + + The value to set + - + - Support for query options with modification requests (insert, update, action invocation) + Description of the custom parameter + + The value to set + + + + + URL of related documentation + + The value to set + + + + + true: parameter is required, false or not specified: parameter is optional + The value to set + - + - Creates a new instance of + Example values for the custom parameter + The value(s) to set + - + - + - Restrictions on navigating properties according to OData URL conventions + Custom query options that are supported/required for the annotated resource + + + + + Creates a new instance of - + - Creates a new instance of + Custom query options that are supported/required for the annotated resource + The value(s) to set + - + - + - Restrictions for function or action operation + Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + + + + + Creates a new instance of - + - Creates a new instance of + Annotation target supports deep inserts + The value to set + - + + + Annotation target supports accepting and returning nested entities annotated with the `Core.ContentID` instance annotation. + + The value to set + + + - + - Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) + Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + + + + + Creates a new instance of - + - Creates a new instance of + Annotation target supports deep updates + The value to set + - + + + Annotation target supports accepting and returning nested entities annotated with the `Core.ContentID` instance annotation. + + The value to set + + + - + - Restrictions for retrieving a collection of entities, retrieving a singleton instance. + Restrictions on delete operations - + - Creates a new instance of + Creates a new instance of - - + + + Entities can be deleted + + The value to set + - + - Restrictions on search expressions + These navigation properties do not allow DeleteLink requests + The value(s) to set + - + - Creates a new instance of + The maximum number of navigation properties that can be traversed when addressing the collection to delete from or the entity to delete. A value of -1 indicates there is no restriction. + The value to set + - - + + + Members of collections can be updated via a PATCH request with a `/$filter(...)/$each` segment + + The value to set + - + - Support for $select and nested query options within $select + Members of collections can be updated via a PATCH request with a type-cast segment and a `/$each` segment + The value to set + - + - Creates a new instance of + Required permissions. One of the specified sets of scopes is required to perform the delete. + The value(s) to set + - - + + + Supported or required custom headers + + The value(s) to set + - + - Supports $skip + Supported or required custom query options + + The value(s) to set + + + + + A brief description of the request + The value to set + - + - Creates a new instance of + A lengthy description of the request + The value to set + - + - + - Restrictions on orderby expressions + Restrictions on expand expressions - + - Creates a new instance of + Creates a new instance of - - + + + $expand is supported + + The value to set + - + - Media types of supported formats, including format parameters + $expand is supported for stream properties and media resources + + The value to set + + + + + These properties cannot be used in expand expressions + The value(s) to set + - + - Creates a new instance of + The maximum number of levels that can be expanded in a expand expression. A value of -1 indicates there is no restriction. + The value to set + - + - + - Media types of supported formats for $metadata, including format parameters + Org.OData.Capabilities.V1.FilterExpressionRestrictionType + + + + + Creates a new instance of + + + + + Path to the restricted property + The value to set + - + - Creates a new instance of + Allowed subset of expressions + The value to set + - + - + - Supports $top + List of functions and operators supported in filter expressions. + + + + + Creates a new instance of - + - Creates a new instance of + List of functions and operators supported in filter expressions. + The value(s) to set + - + - + - Restrictions on update operations + Restrictions on filter expressions - + - Creates a new instance of + Creates a new instance of - - + + + $filter is supported + + The value to set + - + - Interface for clr types that can be converted into + $filter is required + The value to set + - + - Convert a clr type to an + These properties must be specified in the $filter clause (properties of derived types are not allowed here) - + The value(s) to set + - + - Base vocabulary builder. + These structural properties cannot be used in filter expressions + The value(s) to set + - + - Creates a new instance of + These properties only allow a subset of filter expressions. A valid filter expression for a single property can be enclosed in parentheses and combined by `and` with valid expressions for other properties. - The name of the being built. + The value(s) to set + + + + + The maximum number of levels (including recursion) that can be traversed in a filter expression. A value of -1 indicates there is no restriction. + + The value to set + - + - + - Sets the vocabulary annotation on the model's target. + Supports key values according to OData URL conventions - The having reference vocabulary models. - The to set annotations on. - + - Extension methods for vocabulary builders configurations + Creates a new instance of - + - configuration + Supports key values according to OData URL conventions - The entity type of the navigation source. - The that can be built using . - + The value to set + - + + + + - configuration + Restrictions on insert operations - The entity type of the navigation source. - The that can be built using . - - + - configuration + Creates a new instance of - The entity type of the navigation source. - The that can be built using . - - + - configuration + Entities can be inserted - The entity type of the navigation source. - The that can be built using . - + The value to set + - + - configuration + These structural properties cannot be specified on insert - The entity type of the navigation source. - The that can be built using . - + The value(s) to set + - + - configuration + These navigation properties do not allow deep inserts - The entity type of the navigation source. - The that can be built using . - + The value(s) to set + - + - configuration + The maximum number of navigation properties that can be traversed when addressing the collection to insert into. A value of -1 indicates there is no restriction. - The entity type of the navigation source. - The that can be built using . - + The value to set + - + - configuration + Entities of a specific derived type can be created by specifying a type-cast segment - The entity type of the navigation source. - The that can be built using . - + The value to set + - + - configuration + Required permissions. One of the specified sets of scopes is required to perform the insert. - The entity type of the navigation source. - The that can be built using . - + The value(s) to set + - + - configuration + Support for query options with insert requests - The entity type of the navigation source. - The that can be built using . - + The value to set + - + - configuration + Supported or required custom headers - The entity type of the navigation source. - The that can be built using . - + The value(s) to set + - + - configuration + Supported or required custom query options - The entity type of the navigation source. - The that can be built using . - + The value(s) to set + - + - configuration + A brief description of the request - The entity type of the navigation source. - The that can be built using . - + The value to set + - + - configuration + A lengthy description of the request - The entity type of the navigation source. - The that can be built using . - + The value to set + + + + - + - configuration + Org.OData.Capabilities.V1.IsolationLevel - The entity type of the navigation source. - The that can be built using . - - + - configuration + All data returned for a request, including multiple requests within a batch or results retrieved across multiple pages, will be consistent as of a single point in time + + + + + Supported odata.isolation levels - The entity type of the navigation source. - The that can be built using . - - + - configuration + Creates a new instance of - The entity type of the navigation source. - The that can be built using . - - + - configuration + Supported odata.isolation levels + + The value to set + + + + + + + + Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection + + + + + Creates a new instance of + + + + + Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection + + The value to set + + + + + + + + Stream property supports update of its media edit URL and/or media read URL + + + + + Creates a new instance of + + + + + Stream property supports update of its media edit URL and/or media read URL + + The value to set + + + + + + + + Support for query options with modification requests (insert, update, action invocation) + + + + + Creates a new instance of + + + + + Supports $expand with modification requests + + The value to set + + + + + Supports $select with modification requests + + The value to set + + + + + Supports $compute with modification requests + + The value to set + + + + + Supports $filter with modification requests + + The value to set + + + + + Supports $search with modification requests + + The value to set + + + + + Supports $orderby with modification requests + + The value to set + + + + + + + + Org.OData.Capabilities.V1.NavigationPropertyRestriction + + + + + Creates a new instance of + + + + + Navigation properties can be navigated + + The value to set + + + + + Supported navigability of this navigation property. + + The value to set + + + + + List of functions and operators supported in filter expressions. + + The value(s) to set + + + + + Restrictions on filter expressions + + The value to set + + + + + Restrictions on search expressions + + The value to set + + + + + Restrictions on orderby expressions + + The value to set + + + + + Supports $top + + The value to set + + + + + Supports $skip + + The value to set + + + + + Support for $select + + The value to set + + + + + Supports key values according to OData URL conventions + + The value to set + + + + + Restrictions on insert operations + + The value to set + + + + + Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + + The value to set + + + + + Restrictions on update operations + + The value to set + + + + + Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + + The value to set + + + + + Restrictions on delete operations + + The value to set + + + + + Data modification (including insert) along this navigation property requires the use of ETags + + The value to set + + + + + Restrictions for retrieving entities + + The value to set + + + + + + + + Restrictions on navigating properties according to OData URL conventions + + + + + Creates a new instance of + + + + + Default navigability for all navigation properties of the annotation target. Individual navigation properties can override this value via `RestrictedProperties/Navigability`. + + The value to set + + + + + List of navigation properties with restrictions + + The value(s) to set + + + + + + + + Org.OData.Capabilities.V1.NavigationType + + + + + Navigation properties can be recursively navigated + + + + + Navigation properties can be navigated to a single level + + + + + Navigation properties are not navigable + + + + + Restrictions for function or action operation + + + + + Creates a new instance of + + + + + Bound action or function can be invoked on a collection-valued binding parameter path with a `/$filter(...)` segment + + The value to set + + + + + Required permissions. One of the specified sets of scopes is required to invoke an action or function + + The value(s) to set + + + + + Supported or required custom headers + + The value(s) to set + + + + + Supported or required custom query options + + The value(s) to set + + + + + + + + Org.OData.Capabilities.V1.PermissionType + + + + + Creates a new instance of + + + + + Authorization flow scheme name + + The value to set + + + + + List of scopes that can provide access to the resource + + The value(s) to set + + + + + + + + Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) + + + + + Creates a new instance of + + + + + Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) + + The value to set + + + + + + + + Restrictions for retrieving an entity by key + + + + + Creates a new instance of + + + + + Entities can be retrieved + + The value to set + + + + + Required permissions. One of the specified sets of scopes is required to read. + + The value(s) to set + + + + + Supported or required custom headers + + The value(s) to set + + + + + Supported or required custom query options + + The value(s) to set + + + + + A brief description of the request + + The value to set + + + + + A lengthy description of the request + + The value to set + + + + + + + + Restrictions for retrieving a collection of entities, retrieving a singleton instance. + + + + + Creates a new instance of + + + + + Entities can be retrieved + + The value to set + + + + + Required permissions. One of the specified sets of scopes is required to read. + + The value(s) to set + + + + + Supported or required custom headers + + The value(s) to set + + + + + Supported or required custom query options + + The value(s) to set + + + + + A brief description of the request + + The value to set + + + + + A lengthy description of the request + + The value to set + + + + + Restrictions for retrieving an entity by key + + The value to set + + + + + + + + Org.OData.Capabilities.V1.ScopeType + + + + + Creates a new instance of + + + + + Name of the scope. + + The value to set + + + + + Comma-separated string value of all properties that will be included or excluded when using the scope. + + The value to set + + + + + + + + Org.OData.Capabilities.V1.SearchExpressions + + + + + Single search term + + + + + Multiple search terms separated by `AND` + + + + + Multiple search terms separated by `OR` + + + + + Search terms preceded by `NOT` + + + + + Search phrases enclosed in double quotes + + + + + Precedence grouping of search expressions with parentheses + + + + + Restrictions on search expressions + + + + + Creates a new instance of + + + + + $search is supported + + The value to set + + + + + Expressions not supported in $search + + The value to set + + + + + + + + Support for $select and nested query options within $select + + + + + Creates a new instance of + + + + + Supports $select + + The value to set + + + + + Supports instance annotations in $select list + + The value to set + + + + + $expand within $select is supported + + The value to set + + + + + $filter within $select is supported + + The value to set + + + + + $search within $select is supported + + The value to set + + + + + $top within $select is supported + + The value to set + + + + + $skip within $select is supported + + The value to set + + + + + $compute within $select is supported + + The value to set + + + + + $count within $select is supported + + The value to set + + + + + $orderby within $select is supported + + The value to set + + + + + + + + Supports $skip + + + + + Creates a new instance of + + + + + Supports $skip + + The value to set + + + + + + + + Restrictions on orderby expressions + + + + + Creates a new instance of + + + + + $orderby is supported + + The value to set + + + + + These properties can only be used for sorting in Ascending order + + The value(s) to set + + + + + These properties can only be used for sorting in Descending order + + The value(s) to set + + + + + These structural properties cannot be used in orderby expressions + + The value(s) to set + + + + + + + + Media types of supported formats, including format parameters + + + + + Creates a new instance of + + + + + Media types of supported formats, including format parameters + + The value(s) to set + + + + + + + + Media types of supported formats for $metadata, including format parameters + + + + + Creates a new instance of + + + + + Media types of supported formats for $metadata, including format parameters + + The value(s) to set + + + + + + + + Supports $top + + + + + Creates a new instance of + + + + + Supports $top + + The value to set + + + + + + + + Restrictions on update operations + + + + + Creates a new instance of + + + + + Entities can be updated + + The value to set + + + + + Entities can be upserted + + The value to set + + + + + Entities can be inserted, updated, and deleted via a PATCH request with a delta payload + + The value to set + + + + + Members of collections can be updated via a PATCH request with a `/$filter(...)/$each` segment + + The value to set + + + + + Members of collections can be updated via a PATCH request with a type-cast segment and a `/$each` segment + + The value to set + + + + + These navigation properties do not allow rebinding + + The value(s) to set + + + + + The maximum number of navigation properties that can be traversed when addressing the collection or entity to update. A value of -1 indicates there is no restriction. + + The value to set + + + + + Required permissions. One of the specified sets of scopes is required to perform the update. + + The value(s) to set + + + + + Support for query options with update requests + + The value to set + + + + + Supported or required custom headers + + The value(s) to set + + + + + Supported or required custom query options + + The value(s) to set + + + + + A brief description of the request + + The value to set + + + + + A lengthy description of the request + + The value to set + + + + + + + + Org.OData.Core.V1.PrimitiveExampleValue + + + + + Creates a new instance of + + + + + Description of the example value + + The value to set + + + + + Example value for the custom parameter + + The value to set + + + + + + + + Interface for clr types that can be converted into + + + + + Convert a clr type to an + + + + + + Base vocabulary configuration. + + + + + Creates a new instance of + + The name of the being built. + + + + + + + Sets the vocabulary annotation on the model's target. + + The having reference vocabulary models. + The to set annotations on. + + + + Extension methods for vocabulary builders configurations - The entity type of the navigation source. - The that can be built using . - - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + - configuration + configuration The entity type of the navigation source. The that can be built using . - + - + Apply all builders as configured diff --git a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl index 4301952..694f14f 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl +++ b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl @@ -61,7 +61,7 @@ public abstract class Microsoft.OData.ModelBuilder.NavigationSourceConfiguration System.Type ClrType { public get; } Microsoft.OData.ModelBuilder.EntityTypeConfiguration EntityType { public virtual get; } string Name { public get; } - System.Collections.Generic.Dictionary`2[[System.Type],[Microsoft.OData.ModelBuilder.VocabularyBuilder]] VocabularyBuilders { public get; } + System.Collections.Generic.Dictionary`2[[System.Type],[Microsoft.OData.ModelBuilder.VocabularyConfiguration]] VocabularyConfigurations { public get; } public virtual Microsoft.OData.ModelBuilder.NavigationPropertyBindingConfiguration AddBinding (Microsoft.OData.ModelBuilder.NavigationPropertyConfiguration navigationConfiguration, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration targetNavigationSource) public virtual Microsoft.OData.ModelBuilder.NavigationPropertyBindingConfiguration AddBinding (Microsoft.OData.ModelBuilder.NavigationPropertyConfiguration navigationConfiguration, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration targetNavigationSource, System.Collections.Generic.IList`1[[System.Reflection.MemberInfo]] bindingPath) @@ -257,8 +257,8 @@ public abstract class Microsoft.OData.ModelBuilder.StructuralTypeConfiguration`1 public Microsoft.OData.ModelBuilder.PrimitivePropertyConfiguration Property (Expression`1 propertyExpression) } -public abstract class Microsoft.OData.ModelBuilder.VocabularyBuilder : IRecord { - public VocabularyBuilder (string termName) +public abstract class Microsoft.OData.ModelBuilder.VocabularyConfiguration : IRecord { + public VocabularyConfiguration (string termName) public virtual void SetVocabularyAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotatable target) public abstract Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -312,206 +312,116 @@ public sealed class Microsoft.OData.ModelBuilder.PrimitivePropertyConfigurationE [ ExtensionAttribute(), ] -public sealed class Microsoft.OData.ModelBuilder.VocabularyBuilderExtensions { +public sealed class Microsoft.OData.ModelBuilder.VocabularyConfigurationExtensions { [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsBuilder HasAcceptableEncodings (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration HasCallbackSupported (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedBuilder HasAnnotationValuesInQuerySupported (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration HasChangeTracking (NavigationSourceConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedBuilder HasAsynchronousRequestsSupported (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions (NavigationSourceConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedBuilder HasBatchContinueOnErrorSupported (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration HasComputeSupported (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportBuilder HasBatchSupport (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration HasCountRestrictions (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedBuilder HasBatchSupported (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration HasDeepInsertSupport (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedBuilder HasCallbackSupported (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration HasDeepUpdateSupport (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingBuilder HasChangeTracking (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasDeleteRestrictions (NavigationSourceConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsBuilder HasCollectionPropertyRestrictions (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasExpandRestrictions (NavigationSourceConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedBuilder HasComputeSupported (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration HasFilterFunctions (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelBuilder HasConformanceLevel (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasFilterRestrictions (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsBuilder HasCountRestrictions (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration HasIndexableByKey (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedBuilder HasCrossJoinSupported (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasInsertRestrictions (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersBuilder HasCustomHeaders (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasNavigationRestrictions (NavigationSourceConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsBuilder HasCustomQueryOptions (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasReadRestrictions (NavigationSourceConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportBuilder HasDeepInsertSupport (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration HasSearchRestrictions (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportBuilder HasDeepUpdateSupport (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasSelectSupport (NavigationSourceConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsBuilder HasDeleteRestrictions (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration HasSkipSupported (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsBuilder HasExpandRestrictions (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration HasSortRestrictions (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsBuilder HasFilterFunctions (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration HasTopSupported (EntitySetConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsBuilder HasFilterRestrictions (NavigationSourceConfiguration`1 navigationSource) + public static Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasUpdateRestrictions (NavigationSourceConfiguration`1 navigationSource) [ ExtensionAttribute(), ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyBuilder HasIndexableByKey (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsBuilder HasInsertRestrictions (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedBuilder HasIsolationSupported (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedBuilder HasKeyAsSegmentSupported (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedBuilder HasMediaLocationUpdateSupported (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsBuilder HasModificationQueryOptions (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsBuilder HasNavigationRestrictions (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsBuilder HasOperationRestrictions (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedBuilder HasQuerySegmentSupported (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsBuilder HasReadRestrictions (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsBuilder HasSearchRestrictions (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportBuilder HasSelectSupport (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedBuilder HasSkipSupported (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsBuilder HasSortRestrictions (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsBuilder HasSupportedFormats (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsBuilder HasSupportedMetadataFormats (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedBuilder HasTopSupported (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsBuilder HasUpdateRestrictions (NavigationSourceConfiguration`1 navigationSource) - - [ - ExtensionAttribute(), - ] - public static void SetVocabularyBuilderAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.EdmNavigationSource target, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration configuration) + public static void SetVocabularyConfigurationAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.EdmNavigationSource target, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration navigationConfiguration) } public class Microsoft.OData.ModelBuilder.ActionConfiguration : Microsoft.OData.ModelBuilder.OperationConfiguration { @@ -1134,237 +1044,482 @@ public class Microsoft.OData.ModelBuilder.Conventions.ODataModelConventionSet { public ODataModelConventionSet () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public AcceptableEncodingsBuilder () +public enum Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelType : int { + Advanced = 2 + Intermediate = 1 + Minimal = 0 +} + +[ +FlagsAttribute(), +] +public enum Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationLevel : int { + Snapshot = 0 +} +public enum Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationType : int { + None = 2 + Recursive = 0 + Single = 1 +} + +[ +FlagsAttribute(), +] +public enum Microsoft.OData.ModelBuilder.Capabilities.V1.SearchExpressions : int { + AND = 1 + group = 5 + none = 0 + NOT = 3 + OR = 2 + phrase = 4 +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public AcceptableEncodingsConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration AddAcceptableEncodings (string[] acceptableEncodings) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public AnnotationValuesInQuerySupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public AnnotationValuesInQuerySupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration HasAnnotationValuesInQuerySupported (bool annotationValuesInQuerySupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public AsynchronousRequestsSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public AsynchronousRequestsSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration HasAsynchronousRequestsSupported (bool asynchronousRequestsSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public BatchContinueOnErrorSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public BatchContinueOnErrorSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration HasBatchContinueOnErrorSupported (bool batchContinueOnErrorSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public BatchSupportBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public BatchSupportConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration AddSupportedFormats (string[] supportedFormats) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasContinueOnErrorSupported (bool continueOnErrorSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasEtagReferencesSupported (bool etagReferencesSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasReferencesAcrossChangeSetsSupported (bool referencesAcrossChangeSetsSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasReferencesInRequestBodiesSupported (bool referencesInRequestBodiesSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasRequestDependencyConditionsSupported (bool requestDependencyConditionsSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public BatchSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public BatchSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration HasBatchSupported (bool batchSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public CallbackSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration : IRecord { + public CallbackProtocolConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration HasDocumentationUrl (string documentationUrl) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration HasId (string id) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration HasUrlTemplate (string urlTemplate) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public ChangeTrackingBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public CallbackSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration AddCallbackProtocols (Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration[] callbackProtocols) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public CollectionPropertyRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public ChangeTrackingConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration AddExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] expandableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration AddFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] filterableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration HasSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public ComputeSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public CollectionPropertyRestrictionsConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration : IRecord { + public CollectionPropertyRestrictionsTypeConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration AddFilterFunctions (string[] filterFunctions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasCollectionProperty (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression collectionProperty) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasDeletable (bool deletable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration filterRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasInsertable (bool insertable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration searchRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration selectSupport) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSkipSupported (bool skipSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSortRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration sortRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasTopSupported (bool topSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasUpdatable (bool updatable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public ConformanceLevelBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public ComputeSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration HasComputeSupported (bool computeSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public CountRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public ConformanceLevelConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelConfiguration HasConformanceLevel (Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelType conformanceLevel) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public CrossJoinSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public CountRestrictionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration AddNonCountableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonCountableNavigationProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration AddNonCountableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonCountableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration HasCountable (bool countable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public CustomHeadersBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public CrossJoinSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration HasCrossJoinSupported (bool crossJoinSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public CustomQueryOptionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public CustomHeadersConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public DeepInsertSupportBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration : IRecord { + public CustomParameterConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration AddExampleValues (Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration[] exampleValues) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasDescription (string description) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasDocumentationURL (string documentationURL) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasName (string name) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasRequired (bool required) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public DeepUpdateSupportBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public CustomQueryOptionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public DeleteRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public DeepInsertSupportConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration HasContentIDSupported (bool contentIDSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration HasSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public ExpandRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public DeepUpdateSupportConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration HasContentIDSupported (bool contentIDSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration HasSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public FilterFunctionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public DeleteRestrictionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddNonDeletableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonDeletableNavigationProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasDeletable (bool deletable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasDescription (string description) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasFilterSegmentSupported (bool filterSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasLongDescription (string longDescription) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasTypecastSegmentSupported (bool typecastSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public FilterRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public ExpandRestrictionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration AddNonExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonExpandableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasExpandable (bool expandable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasStreamsExpandable (bool streamsExpandable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public IndexableByKeyBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration : IRecord { + public FilterExpressionRestrictionTypeConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration HasAllowedExpressions (string allowedExpressions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration HasProperty (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression property) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public InsertRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public FilterFunctionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration AddFilterFunctions (string[] filterFunctions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public IsolationSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public FilterRestrictionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration AddFilterExpressionRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration AddNonFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonFilterableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration AddRequiredProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] requiredProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasFilterable (bool filterable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasRequiresFilter (bool requiresFilter) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public KeyAsSegmentSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public IndexableByKeyConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration HasIndexableByKey (bool indexableByKey) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public MediaLocationUpdateSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public InsertRestrictionsConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddNonInsertableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonInsertableNavigationProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddNonInsertableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonInsertableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasDescription (string description) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasInsertable (bool insertable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasLongDescription (string longDescription) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration queryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasTypecastSegmentSupported (bool typecastSegmentSupported) + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} +public class Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public IsolationSupportedConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedConfiguration HasIsolationSupported (Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationLevel isolationSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public ModificationQueryOptionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public KeyAsSegmentSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration HasKeyAsSegmentSupported (bool keyAsSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public NavigationRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public MediaLocationUpdateSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration HasMediaLocationUpdateSupported (bool mediaLocationUpdateSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public OperationRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public ModificationQueryOptionsConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasComputeSupported (bool computeSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasExpandSupported (bool expandSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasFilterSupported (bool filterSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasSearchSupported (bool searchSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasSelectSupported (bool selectSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasSortSupported (bool sortSupported) + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} +public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration : IRecord { + public NavigationPropertyRestrictionConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration AddFilterFunctions (string[] filterFunctions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeepInsertSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration deepInsertSupport) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration deepUpdateSupport) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeleteRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration deleteRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasFilterRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration filterRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasIndexableByKey (bool indexableByKey) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasInsertRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration insertRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasNavigability (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationType navigability) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasNavigationProperty (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression navigationProperty) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasOptimisticConcurrencyControl (bool optimisticConcurrencyControl) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasReadRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration readRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSearchRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration searchRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSelectSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration selectSupport) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSkipSupported (bool skipSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSortRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration sortRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasTopSupported (bool topSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasUpdateRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration updateRestrictions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public QuerySegmentSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public NavigationRestrictionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration AddRestrictedProperties (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration[] restrictedProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasNavigability (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationType navigability) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public ReadRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public OperationRestrictionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasFilterSegmentSupported (bool filterSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public SearchRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration : IRecord { + public PermissionTypeConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration AddScopes (Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration[] scopes) + public Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration HasSchemeName (string schemeName) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public SelectSupportBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public QuerySegmentSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration HasQuerySegmentSupported (bool querySegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public SkipSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration : IRecord { + public ReadByKeyRestrictionsTypeConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasDescription (string description) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasLongDescription (string longDescription) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasReadable (bool readable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public SortRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public ReadRestrictionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasDescription (string description) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasLongDescription (string longDescription) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasReadable (bool readable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasReadByKeyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration readByKeyRestrictions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public SupportedFormatsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration : IRecord { + public ScopeTypeConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration HasRestrictedProperties (string restrictedProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration HasScope (string scope) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public SupportedMetadataFormatsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public SearchRestrictionsConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration HasSearchable (bool searchable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration HasUnsupportedExpressions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchExpressions unsupportedExpressions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public TopSupportedBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public SelectSupportConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasComputeSupported (bool computeSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasCountable (bool countable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasExpandable (bool expandable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasFilterable (bool filterable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasInstanceAnnotationsSupported (bool instanceAnnotationsSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasSearchable (bool searchable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasSkipSupported (bool skipSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasSortable (bool sortable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasSupported (bool supported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasTopSupported (bool topSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsBuilder : Microsoft.OData.ModelBuilder.VocabularyBuilder, IRecord { - public UpdateRestrictionsBuilder () +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public SkipSupportedConfiguration () + public Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration HasSkipSupported (bool skipSupported) + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public SortRestrictionsConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration AddAscendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] ascendingOnlyProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration AddDescendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] descendingOnlyProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration AddNonSortableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonSortableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration HasSortable (bool sortable) + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public SupportedFormatsConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration AddSupportedFormats (string[] supportedFormats) + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public SupportedMetadataFormatsConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration AddSupportedMetadataFormats (string[] supportedMetadataFormats) + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public TopSupportedConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration HasTopSupported (bool topSupported) + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + +public class Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { + public UpdateRestrictionsConfiguration () + + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddNonUpdatableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonUpdatableNavigationProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasDeltaUpdateSupported (bool deltaUpdateSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasDescription (string description) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasFilterSegmentSupported (bool filterSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasLongDescription (string longDescription) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration queryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasTypecastSegmentSupported (bool typecastSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasUpdatable (bool updatable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasUpsertable (bool upsertable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1385,3 +1540,11 @@ public abstract class Microsoft.OData.ModelBuilder.Conventions.Attributes.TypeAt public TypeAttributeConvention`1 () } +public class Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration : IRecord { + public PrimitiveExampleValueConfiguration () + + public Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration HasDescription (string description) + public Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration HasValue (object value) + public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () +} + From 87701d7768043bd3b5da9a336f21f8db679234f9 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Thu, 18 Jun 2020 15:29:51 +0300 Subject: [PATCH 10/29] Bug fixes. --- .../Helpers/EdmModelHelperMethods.cs | 3 +- .../V1/CallbackProtocolConfiguration.cs | 6 +- .../V1/ChangeTrackingConfiguration.cs | 2 + ...onPropertyRestrictionsTypeConfiguration.cs | 2 + .../V1/CustomParameterConfiguration.cs | 7 +- .../V1/CustomQueryOptionsConfiguration.cs | 2 + .../V1/DeleteRestrictionsConfiguration.cs | 4 +- ...rExpressionRestrictionTypeConfiguration.cs | 2 +- .../V1/FilterFunctionsConfiguration.cs | 2 + .../V1/InsertRestrictionsConfiguration.cs | 4 +- ...igationPropertyRestrictionConfiguration.cs | 1 + .../V1/NavigationRestrictionsConfiguration.cs | 1 + .../V1/PermissionTypeConfiguration.cs | 2 +- .../ReadByKeyRestrictionsTypeConfiguration.cs | 4 +- .../V1/ReadRestrictionsConfiguration.cs | 5 +- .../Capabilities/V1/ScopeTypeConfiguration.cs | 5 +- .../V1/UpdateRestrictionsConfiguration.cs | 4 +- .../V1/PrimitiveExampleValueConfiguration.cs | 2 +- .../Vocabulary/VocabularyConfiguration.tt | 32 +++-- .../Capabilities/DeleteRestrictionsTests.cs | 122 ++++++++++++++++++ 20 files changed, 177 insertions(+), 35 deletions(-) create mode 100644 test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsTests.cs diff --git a/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs b/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs index 16ede51..c821b00 100644 --- a/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs +++ b/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs @@ -138,7 +138,7 @@ private static IDictionary GetNavigationSourceMap(t private static void AddNavigationBindings(EdmTypeMap edmMap, NavigationSourceConfiguration navigationSourceConfiguration, EdmNavigationSource navigationSource, - // NavigationSourceLinkBuilderAnnotation linkBuilder, + // NavigationSourceLinkBuilderAnnotation linkBuilder, Dictionary edmNavigationSourceMap) { foreach (var binding in navigationSourceConfiguration.Bindings) @@ -655,6 +655,7 @@ private static void AddCapabilitiesVocabularyAnnotations(this EdmModel model, IE foreach (NavigationSourceAndAnnotations source in navigationSources) { + model.SetVocabularyConfigurationAnnotations(source.NavigationSource, source.Configuration); IEdmEntitySet entitySet = source.NavigationSource as IEdmEntitySet; if (entitySet == null) { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs index f1c6f55..5ba8961 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs @@ -64,17 +64,17 @@ public IEdmExpression ToEdmExpression() { var properties = new List(); - if (string.IsNullOrEmpty(_id)) + if (!string.IsNullOrEmpty(_id)) { properties.Add(new EdmPropertyConstructor("Id", new EdmStringConstant(_id))); } - if (string.IsNullOrEmpty(_urlTemplate)) + if (!string.IsNullOrEmpty(_urlTemplate)) { properties.Add(new EdmPropertyConstructor("UrlTemplate", new EdmStringConstant(_urlTemplate))); } - if (string.IsNullOrEmpty(_documentationUrl)) + if (!string.IsNullOrEmpty(_documentationUrl)) { properties.Add(new EdmPropertyConstructor("DocumentationUrl", new EdmStringConstant(_documentationUrl))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs index b3e902a..bc1228c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs @@ -40,6 +40,7 @@ public ChangeTrackingConfiguration HasSupported(bool supported) /// /// Change tracking supports filters on these properties + /// If no properties are specified or FilterableProperties is omitted, clients cannot assume support for filtering on any properties in combination with change tracking. /// /// The value(s) to set /// @@ -55,6 +56,7 @@ public ChangeTrackingConfiguration AddFilterableProperties(params EdmPropertyPat /// /// Change tracking supports these properties expanded + /// If no properties are specified or ExpandableProperties is omitted, clients cannot assume support for expanding any properties in combination with change tracking. /// /// The value(s) to set /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs index 1095bc7..a31cca5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -47,6 +47,7 @@ public CollectionPropertyRestrictionsTypeConfiguration HasCollectionProperty(Edm /// /// List of functions and operators supported in filter expressions. + /// If not specified, null, or empty, all functions and operators may be attempted. /// /// The value(s) to set /// @@ -128,6 +129,7 @@ public CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport(SelectSu /// /// Members can be inserted into this collection + /// If additionally annotated with [Core.PositionalInsert](Org.OData.Core.V1.md#PositionalInsert), members can be inserted at a specific position /// /// The value to set /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs index 3ee2bbe..c005cdd 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs @@ -12,6 +12,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// /// A custom parameter is either a header or a query option + /// The type of a custom parameter is always a string. Restrictions on the parameter values can be expressed by annotating the record expression describing the parameter with terms from the Validation vocabulary, e.g. Validation.Pattern or Validation.AllowedValues. /// public partial class CustomParameterConfiguration : IRecord { @@ -92,17 +93,17 @@ public IEdmExpression ToEdmExpression() { var properties = new List(); - if (string.IsNullOrEmpty(_name)) + if (!string.IsNullOrEmpty(_name)) { properties.Add(new EdmPropertyConstructor("Name", new EdmStringConstant(_name))); } - if (string.IsNullOrEmpty(_description)) + if (!string.IsNullOrEmpty(_description)) { properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); } - if (string.IsNullOrEmpty(_documentationURL)) + if (!string.IsNullOrEmpty(_documentationURL)) { properties.Add(new EdmPropertyConstructor("DocumentationURL", new EdmStringConstant(_documentationURL))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs index 94f6aba..72182d3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -12,6 +12,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// /// Custom query options that are supported/required for the annotated resource + /// If the entity container is annotated, the query option is supported/required by all resources in that container. /// public partial class CustomQueryOptionsConfiguration : VocabularyConfiguration { @@ -27,6 +28,7 @@ public CustomQueryOptionsConfiguration() /// /// Custom query options that are supported/required for the annotated resource + /// If the entity container is annotated, the query option is supported/required by all resources in that container. /// /// The value(s) to set /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs index cfb2ada..c3fc067 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -221,12 +221,12 @@ public override IEdmExpression ToEdmExpression() } } - if (string.IsNullOrEmpty(_description)) + if (!string.IsNullOrEmpty(_description)) { properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); } - if (string.IsNullOrEmpty(_longDescription)) + if (!string.IsNullOrEmpty(_longDescription)) { properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs index 70225d4..fa58438 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs @@ -57,7 +57,7 @@ public IEdmExpression ToEdmExpression() properties.Add(new EdmPropertyConstructor("Property", _property)); } - if (string.IsNullOrEmpty(_allowedExpressions)) + if (!string.IsNullOrEmpty(_allowedExpressions)) { properties.Add(new EdmPropertyConstructor("AllowedExpressions", new EdmStringConstant(_allowedExpressions))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs index b3329af..b3b6232 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs @@ -12,6 +12,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// /// List of functions and operators supported in filter expressions. + /// If not specified, null, or empty, all functions and operators may be attempted. /// public partial class FilterFunctionsConfiguration : VocabularyConfiguration { @@ -27,6 +28,7 @@ public FilterFunctionsConfiguration() /// /// List of functions and operators supported in filter expressions. + /// If not specified, null, or empty, all functions and operators may be attempted. /// /// The value(s) to set /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs index 941181b..0f1fac3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -246,12 +246,12 @@ public override IEdmExpression ToEdmExpression() } } - if (string.IsNullOrEmpty(_description)) + if (!string.IsNullOrEmpty(_description)) { properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); } - if (string.IsNullOrEmpty(_longDescription)) + if (!string.IsNullOrEmpty(_longDescription)) { properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs index 35a27aa..307f663 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -64,6 +64,7 @@ public NavigationPropertyRestrictionConfiguration HasNavigability(NavigationType /// /// List of functions and operators supported in filter expressions. + /// If not specified, null, or empty, all functions and operators may be attempted. /// /// The value(s) to set /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs index 58fa051..58eeda6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -12,6 +12,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 { /// /// Restrictions on navigating properties according to OData URL conventions + /// Restrictions specified on an entity set are valid whether the request is directly to the entity set or through a navigation property bound to that entity set. Services can specify a different set of restrictions specific to a path, in which case the more specific restrictions take precedence. /// public partial class NavigationRestrictionsConfiguration : VocabularyConfiguration { diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs index 3882ed4..2e9a6e3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs @@ -56,7 +56,7 @@ public IEdmExpression ToEdmExpression() { var properties = new List(); - if (string.IsNullOrEmpty(_schemeName)) + if (!string.IsNullOrEmpty(_schemeName)) { properties.Add(new EdmPropertyConstructor("SchemeName", new EdmStringConstant(_schemeName))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index da7fc0e..ca5547a 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -144,12 +144,12 @@ public IEdmExpression ToEdmExpression() } } - if (string.IsNullOrEmpty(_description)) + if (!string.IsNullOrEmpty(_description)) { properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); } - if (string.IsNullOrEmpty(_longDescription)) + if (!string.IsNullOrEmpty(_longDescription)) { properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs index 6571412..e243618 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -111,6 +111,7 @@ public ReadRestrictionsConfiguration HasLongDescription(string longDescription) /// /// Restrictions for retrieving an entity by key + /// Only valid when applied to a collection. If a property of `ReadByKeyRestrictions` is not specified, the corresponding property value of `ReadRestrictions` applies. /// /// The value to set /// @@ -157,12 +158,12 @@ public override IEdmExpression ToEdmExpression() } } - if (string.IsNullOrEmpty(_description)) + if (!string.IsNullOrEmpty(_description)) { properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); } - if (string.IsNullOrEmpty(_longDescription)) + if (!string.IsNullOrEmpty(_longDescription)) { properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs index a539aba..4fe9d76 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs @@ -38,6 +38,7 @@ public ScopeTypeConfiguration HasScope(string scope) /// /// Comma-separated string value of all properties that will be included or excluded when using the scope. + /// Possible string value identifiers when specifying properties are '*', _PropertyName_, '-'_PropertyName_. Where, '*' denotes all properties are accessible,'-'_PropertyName_ excludes that specific property and _PropertyName_ explicitly provides access to the specific property. The absence of 'RestrictedProperties' denotes all properties are accessible using that scope. /// /// The value to set /// @@ -52,12 +53,12 @@ public IEdmExpression ToEdmExpression() { var properties = new List(); - if (string.IsNullOrEmpty(_scope)) + if (!string.IsNullOrEmpty(_scope)) { properties.Add(new EdmPropertyConstructor("Scope", new EdmStringConstant(_scope))); } - if (string.IsNullOrEmpty(_restrictedProperties)) + if (!string.IsNullOrEmpty(_restrictedProperties)) { properties.Add(new EdmPropertyConstructor("RestrictedProperties", new EdmStringConstant(_restrictedProperties))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs index 090e5a5..3b578ae 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -272,12 +272,12 @@ public override IEdmExpression ToEdmExpression() } } - if (string.IsNullOrEmpty(_description)) + if (!string.IsNullOrEmpty(_description)) { properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); } - if (string.IsNullOrEmpty(_longDescription)) + if (!string.IsNullOrEmpty(_longDescription)) { properties.Add(new EdmPropertyConstructor("LongDescription", new EdmStringConstant(_longDescription))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs index 90cc9ac..e5ee92f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs @@ -52,7 +52,7 @@ public IEdmExpression ToEdmExpression() { var properties = new List(); - if (string.IsNullOrEmpty(_description)) + if (!string.IsNullOrEmpty(_description)) { properties.Add(new EdmPropertyConstructor("Description", new EdmStringConstant(_description))); } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt index f6ad4a1..ab44508 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt @@ -216,7 +216,7 @@ class Manager : GeneratedTextTransformation public void WriteTerm(IEdmTerm term) { var actualType = term.Type.Definition; - var description = _model.GetDescriptionAnnotation(term); + var description = GetDescription(term); var clrType = GetClrType(term); var @namespace = GetNamespace(term); if (actualType.TypeKind == EdmTypeKind.Complex) @@ -265,7 +265,7 @@ namespace <#= @namespace #> public void WriteClass(IEdmComplexType complexType) { - var description = _model.GetDescriptionAnnotation(complexType); + var description = GetDescription(complexType); var clrType = GetClrType(complexType); var @namespace = GetNamespace(complexType); WriteHeader(); @@ -308,7 +308,7 @@ namespace <#= @namespace #> public void WriteEnum(IEdmEnumType enumType) { - var description = _model.GetDescriptionAnnotation(enumType) ?? enumType.FullName(); + var description = GetDescription(enumType); var @namespace = GetNamespace(enumType); WriteHeader(); @@ -454,7 +454,7 @@ using Microsoft.OData.Edm.Vocabularies; var complexType = type as IEdmComplexType; foreach (var property in complexType.Properties()) { - description = _model.GetDescriptionAnnotation(property); + description = GetDescription(property); ProcessBuildMethods(property.Type.Definition, property.Name, returnType, description, @namespace, false); } @@ -532,7 +532,7 @@ using Microsoft.OData.Edm.Vocabularies; var complexType = type as IEdmComplexType; foreach (var property in complexType.Properties()) { - description = _model.GetDescriptionAnnotation(property); + description = GetDescription(property); ProcessEdmProperties(property.Type.Definition, property.Name, returnType, description, @namespace, false); } } @@ -572,7 +572,7 @@ using Microsoft.OData.Edm.Vocabularies; if (fullTypeName == "Edm.String") { #> - if (string.IsNullOrEmpty(_<#= camelName #>)) + if (!string.IsNullOrEmpty(_<#= camelName #>)) { properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmStringConstant(_<#= camelName #>))); } @@ -703,15 +703,21 @@ using Microsoft.OData.Edm.Vocabularies; } private string CamelCase(string input) + => string.Concat(input[0].ToString().ToLower(), input.Substring(1)); + + private string GetDescription(IEdmVocabularyAnnotatable target) { - return string.Concat(input[0].ToString().ToLower(), input.Substring(1)); + var description = string.Concat(_model.GetDescriptionAnnotation(target), Environment.NewLine, _model.GetLongDescriptionAnnotation(target)); + if (string.IsNullOrWhiteSpace(description)) + { + return target.ToString(); + } + + return description.Trim(); } private void ProcessSummary(IEdmVocabularyAnnotatable target, string indent) - { - var description = _model.GetDescriptionAnnotation(target) ?? target.ToString(); - ProcessSummary(description, indent); - } + => ProcessSummary(GetDescription(target), indent); private void ProcessSummary(string text, string indent) { @@ -720,8 +726,8 @@ using Microsoft.OData.Edm.Vocabularies; WriteLine("/// Summary"); return; } - var lines = text.Split(new char[] { '\r', '\n' }) ?? new string[0]; - WriteLine($"/// {lines.FirstOrDefault()}"); + var lines = text.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + WriteLine($"/// {lines.FirstOrDefault() ?? "Summary" }"); foreach (var line in lines.Skip(1)) { WriteLine($"{indent}/// {line}"); diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsTests.cs new file mode 100644 index 0000000..6e7edf5 --- /dev/null +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsTests.cs @@ -0,0 +1,122 @@ +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; +using Microsoft.OData.ModelBuilder.Capabilities.V1; +using Microsoft.OData.ModelBuilder.Tests.Commons; +using Microsoft.OData.ModelBuilder.Tests.TestModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Xunit; + +namespace Microsoft.OData.ModelBuilder.Tests.Vocabularies.Capabilities +{ + public class DeleteRestrictionsTests + { + private const string Description = "A brief description"; + private const string LongDescription = "A very long description"; + private const string SchemeName = "Delegated"; + private const string CustomerReadWriteAllScope = "Customers.ReadWrite.All"; + + [Fact] + public void DeleteRestrictionsChainsToSameInstance() + { + var modelBuilder = new ODataModelBuilder().Add_Customers_EntitySet(); + var entitySetConfiguration = modelBuilder.EntitySet("Customers"); + + var builder1 = entitySetConfiguration.HasDeleteRestrictions(); + var builder2 = builder1.HasDeletable(true); + + Assert.Same(builder1, builder2); + } + + [Fact] + public void AnnotationsAreAddedToModelOnBuild() + { + var modelBuilder = new ODataModelBuilder().Add_Customer_EntityType().Add_Customers_EntitySet(); + var entitySetConfiguration = modelBuilder.EntitySet("Customers"); + + var deleteRestrictionsBuilder = entitySetConfiguration + .HasDeleteRestrictions() + .HasDeletable(false) + .HasDescription(Description); + + var model = modelBuilder.GetServiceModel(); + var container = model.SchemaElements.OfType().SingleOrDefault(); + var customers = container.EntitySets().SingleOrDefault(e => e.Name == "Customers"); + + var term = model.FindTerm("Org.OData.Capabilities.V1.DeleteRestrictions"); + var annotation = customers.VocabularyAnnotations(model).FirstOrDefault(a => a.Term == term); + Assert.NotNull(annotation); + + var annotationValue = annotation.Value as EdmRecordExpression; + Assert.NotNull(annotationValue); + + var descriptionProperty = annotationValue.FindProperty("Description"); + Assert.NotNull(descriptionProperty); + + var stringValue = descriptionProperty.Value as IEdmStringValue; + Assert.NotNull(stringValue); + + Assert.Equal(Description, stringValue.Value); + } + + [Fact] + public void PermissionsCanBeAddedToEntitySet() + { + var modelBuilder = new ODataModelBuilder().Add_Customer_EntityType().Add_Customers_EntitySet(); + + + var deleteRestrictionsBuilder = modelBuilder + .EntitySet("Customers") + .HasDeleteRestrictions() + .HasDeletable(false) + .HasDescription(Description) + .AddPermissions( + new PermissionTypeConfiguration() + .HasSchemeName(SchemeName) + .AddScopes( + new ScopeTypeConfiguration() + .HasScope(CustomerReadWriteAllScope) + .HasRestrictedProperties("*"))) + .HasLongDescription(LongDescription); + + var model = modelBuilder.GetServiceModel(); + var container = model.SchemaElements.OfType().SingleOrDefault(); + var customers = container.EntitySets().SingleOrDefault(e => e.Name == "Customers"); + + var term = model.FindTerm("Org.OData.Capabilities.V1.DeleteRestrictions"); + var annotation = customers.VocabularyAnnotations(model).FirstOrDefault(a => a.Term == term); + Assert.NotNull(annotation); + + var annotationValue = annotation.Value as EdmRecordExpression; + Assert.NotNull(annotationValue); + + var permissionsCollection = GetRecordValue(annotationValue, "Permissions"); + Assert.NotNull(permissionsCollection); + + var singlePermission = Assert.Single(permissionsCollection.Elements) as EdmRecordExpression; + Assert.NotNull(singlePermission); + + var schemeNameValue = GetRecordValue(singlePermission, "SchemeName"); + Assert.NotNull(schemeNameValue); + + Assert.Equal(SchemeName, schemeNameValue.Value); + + var scopesProperty = GetRecordValue(singlePermission, "Scopes"); + Assert.NotNull(scopesProperty); + + var singleScope = Assert.Single(scopesProperty.Elements) as EdmRecordExpression; + Assert.NotNull(singleScope); + + var scopeValue = GetRecordValue(singleScope, "Scope"); + Assert.Equal(CustomerReadWriteAllScope, scopeValue.Value); + + var restrictedPropertiesValue = GetRecordValue(singleScope, "RestrictedProperties"); + Assert.Equal("*", restrictedPropertiesValue.Value); + } + + private T GetRecordValue(EdmRecordExpression record, string name) where T : class + => record.FindProperty(name)?.Value as T; + } +} From 3c7a2ee504eeae7c5bfd6fb5608c165792400b81 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Thu, 18 Jun 2020 15:49:22 +0300 Subject: [PATCH 11/29] Some reorganisation. --- .../NavigationSourceConfiguration.cs | 2 +- .../Microsoft.OData.ModelBuilder.csproj | 8 +-- .../V1/AcceptableEncodingsConfiguration.cs | 2 +- ...tionValuesInQuerySupportedConfiguration.cs | 2 +- ...nchronousRequestsSupportedConfiguration.cs | 2 +- ...chContinueOnErrorSupportedConfiguration.cs | 2 +- .../V1/BatchSupportConfiguration.cs | 2 +- .../V1/BatchSupportedConfiguration.cs | 2 +- .../V1/CallbackSupportedConfiguration.cs | 2 +- .../V1/ChangeTrackingConfiguration.cs | 2 +- ...ectionPropertyRestrictionsConfiguration.cs | 2 +- .../V1/ComputeSupportedConfiguration.cs | 2 +- .../V1/ConformanceLevelConfiguration.cs | 2 +- .../V1/CountRestrictionsConfiguration.cs | 2 +- .../V1/CrossJoinSupportedConfiguration.cs | 2 +- .../V1/CustomHeadersConfiguration.cs | 2 +- .../V1/CustomQueryOptionsConfiguration.cs | 2 +- .../V1/DeepInsertSupportConfiguration.cs | 2 +- .../V1/DeepUpdateSupportConfiguration.cs | 2 +- .../V1/DeleteRestrictionsConfiguration.cs | 2 +- .../V1/ExpandRestrictionsConfiguration.cs | 2 +- .../V1/FilterFunctionsConfiguration.cs | 2 +- .../V1/FilterRestrictionsConfiguration.cs | 2 +- .../V1/IndexableByKeyConfiguration.cs | 2 +- .../V1/InsertRestrictionsConfiguration.cs | 2 +- .../V1/IsolationSupportedConfiguration.cs | 2 +- .../V1/KeyAsSegmentSupportedConfiguration.cs | 2 +- ...diaLocationUpdateSupportedConfiguration.cs | 2 +- .../ModificationQueryOptionsConfiguration.cs | 2 +- .../V1/NavigationRestrictionsConfiguration.cs | 2 +- .../V1/OperationRestrictionsConfiguration.cs | 2 +- .../V1/QuerySegmentSupportedConfiguration.cs | 2 +- .../V1/ReadRestrictionsConfiguration.cs | 2 +- .../V1/SearchRestrictionsConfiguration.cs | 2 +- .../V1/SelectSupportConfiguration.cs | 2 +- .../V1/SkipSupportedConfiguration.cs | 2 +- .../V1/SortRestrictionsConfiguration.cs | 2 +- .../V1/SupportedFormatsConfiguration.cs | 2 +- .../SupportedMetadataFormatsConfiguration.cs | 2 +- .../V1/TopSupportedConfiguration.cs | 2 +- .../V1/UpdateRestrictionsConfiguration.cs | 2 +- .../Vocabulary/IRecord.cs | 20 ++++++ .../Vocabulary/VocabularyTermConfiguration.cs | 51 +++++++++++++++ ... VocabularyTermConfigurationExtensions.cs} | 63 ++----------------- ... VocabularyTermConfigurationExtensions.tt} | 61 +----------------- 45 files changed, 122 insertions(+), 161 deletions(-) create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs rename src/Microsoft.OData.ModelBuilder/Vocabulary/{VocabularyConfiguration.cs => VocabularyTermConfigurationExtensions.cs} (88%) rename src/Microsoft.OData.ModelBuilder/Vocabulary/{VocabularyConfiguration.tt => VocabularyTermConfigurationExtensions.tt} (90%) diff --git a/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs index cc3370c..c613ddc 100644 --- a/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs @@ -99,7 +99,7 @@ public IEnumerable Bindings /// /// Vocabulary builders to annotate this /// - public Dictionary VocabularyConfigurations { get; } = new Dictionary(); + public Dictionary VocabularyTermConfigurations { get; } = new Dictionary(); /// /// Gets the navigation source URL. diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj index 27c7f4b..04275d6 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj @@ -33,10 +33,10 @@ True SRResources.resx - + True True - VocabularyConfiguration.tt + VocabularyTermConfigurationExtensions.tt @@ -48,9 +48,9 @@ - + TextTemplatingFileGenerator - VocabularyConfiguration.cs + VocabularyTermConfigurationExtensions.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs index 9b47d42..115f89f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// List of acceptable compression methods for ($batch) requests, e.g. gzip /// - public partial class AcceptableEncodingsConfiguration : VocabularyConfiguration + public partial class AcceptableEncodingsConfiguration : VocabularyTermConfiguration { private readonly HashSet _acceptableEncodings = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs index 90dd4c3..7f15caf 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports annotation values within system query options /// - public partial class AnnotationValuesInQuerySupportedConfiguration : VocabularyConfiguration + public partial class AnnotationValuesInQuerySupportedConfiguration : VocabularyTermConfiguration { private bool? _annotationValuesInQuerySupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs index ebf0b9d..c2cb6ff 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Service supports the asynchronous request preference /// - public partial class AsynchronousRequestsSupportedConfiguration : VocabularyConfiguration + public partial class AsynchronousRequestsSupportedConfiguration : VocabularyTermConfiguration { private bool? _asynchronousRequestsSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs index aab1dc0..fd9bfb4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. /// - public partial class BatchContinueOnErrorSupportedConfiguration : VocabularyConfiguration + public partial class BatchContinueOnErrorSupportedConfiguration : VocabularyTermConfiguration { private bool? _batchContinueOnErrorSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs index 5bb68f3..bac6c74 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Batch Support for the service /// - public partial class BatchSupportConfiguration : VocabularyConfiguration + public partial class BatchSupportConfiguration : VocabularyTermConfiguration { private bool? _supported; private bool? _continueOnErrorSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs index 981db23..4dd5cab 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. /// - public partial class BatchSupportedConfiguration : VocabularyConfiguration + public partial class BatchSupportedConfiguration : VocabularyTermConfiguration { private bool? _batchSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs index 513798c..2548d6c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports callbacks for the specified protocols /// - public partial class CallbackSupportedConfiguration : VocabularyConfiguration + public partial class CallbackSupportedConfiguration : VocabularyTermConfiguration { private readonly HashSet _callbackProtocols = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs index bc1228c..8dc6115 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Change tracking capabilities of this service or entity set /// - public partial class ChangeTrackingConfiguration : VocabularyConfiguration + public partial class ChangeTrackingConfiguration : VocabularyTermConfiguration { private bool? _supported; private readonly HashSet _filterableProperties = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs index 7ecca05..4c0ab5c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Describes restrictions on operations applied to collection-valued structural properties /// - public partial class CollectionPropertyRestrictionsConfiguration : VocabularyConfiguration + public partial class CollectionPropertyRestrictionsConfiguration : VocabularyTermConfiguration { private readonly HashSet _collectionPropertyRestrictions = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs index 767595b..e066b6a 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports $compute /// - public partial class ComputeSupportedConfiguration : VocabularyConfiguration + public partial class ComputeSupportedConfiguration : VocabularyTermConfiguration { private bool? _computeSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs index 7e720a0..defcd9b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// The conformance level achieved by this service /// - public partial class ConformanceLevelConfiguration : VocabularyConfiguration + public partial class ConformanceLevelConfiguration : VocabularyTermConfiguration { private ConformanceLevelType? _conformanceLevel; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs index 4d489b1..9c0fa59 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions on /$count path suffix and $count=true system query option /// - public partial class CountRestrictionsConfiguration : VocabularyConfiguration + public partial class CountRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _countable; private readonly HashSet _nonCountableProperties = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs index ed86203..683003b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports cross joins for the entity sets in this container /// - public partial class CrossJoinSupportedConfiguration : VocabularyConfiguration + public partial class CrossJoinSupportedConfiguration : VocabularyTermConfiguration { private bool? _crossJoinSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs index d7fcf69..4524b57 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Custom headers that are supported/required for the annotated resource /// - public partial class CustomHeadersConfiguration : VocabularyConfiguration + public partial class CustomHeadersConfiguration : VocabularyTermConfiguration { private readonly HashSet _customHeaders = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs index 72182d3..bf93ec8 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -14,7 +14,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// Custom query options that are supported/required for the annotated resource /// If the entity container is annotated, the query option is supported/required by all resources in that container. /// - public partial class CustomQueryOptionsConfiguration : VocabularyConfiguration + public partial class CustomQueryOptionsConfiguration : VocabularyTermConfiguration { private readonly HashSet _customQueryOptions = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs index 1e5a6c4..4508ca2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) /// - public partial class DeepInsertSupportConfiguration : VocabularyConfiguration + public partial class DeepInsertSupportConfiguration : VocabularyTermConfiguration { private bool? _supported; private bool? _contentIDSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs index adf799c..fc41bd2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) /// - public partial class DeepUpdateSupportConfiguration : VocabularyConfiguration + public partial class DeepUpdateSupportConfiguration : VocabularyTermConfiguration { private bool? _supported; private bool? _contentIDSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs index c3fc067..5f52569 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions on delete operations /// - public partial class DeleteRestrictionsConfiguration : VocabularyConfiguration + public partial class DeleteRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _deletable; private readonly HashSet _nonDeletableNavigationProperties = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs index 4223864..02f2d86 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions on expand expressions /// - public partial class ExpandRestrictionsConfiguration : VocabularyConfiguration + public partial class ExpandRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _expandable; private bool? _streamsExpandable; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs index b3b6232..6001d53 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs @@ -14,7 +14,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// List of functions and operators supported in filter expressions. /// If not specified, null, or empty, all functions and operators may be attempted. /// - public partial class FilterFunctionsConfiguration : VocabularyConfiguration + public partial class FilterFunctionsConfiguration : VocabularyTermConfiguration { private readonly HashSet _filterFunctions = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs index c8b6966..97b734d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions on filter expressions /// - public partial class FilterRestrictionsConfiguration : VocabularyConfiguration + public partial class FilterRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _filterable; private bool? _requiresFilter; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs index e1a5f0d..0197378 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports key values according to OData URL conventions /// - public partial class IndexableByKeyConfiguration : VocabularyConfiguration + public partial class IndexableByKeyConfiguration : VocabularyTermConfiguration { private bool? _indexableByKey; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs index 0f1fac3..4d56efd 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions on insert operations /// - public partial class InsertRestrictionsConfiguration : VocabularyConfiguration + public partial class InsertRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _insertable; private readonly HashSet _nonInsertableProperties = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs index 4f8530f..083c164 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supported odata.isolation levels /// - public partial class IsolationSupportedConfiguration : VocabularyConfiguration + public partial class IsolationSupportedConfiguration : VocabularyTermConfiguration { private IsolationLevel? _isolationSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs index a1a5cc2..959a8c9 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection /// - public partial class KeyAsSegmentSupportedConfiguration : VocabularyConfiguration + public partial class KeyAsSegmentSupportedConfiguration : VocabularyTermConfiguration { private bool? _keyAsSegmentSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs index de7acb9..cb927d9 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Stream property supports update of its media edit URL and/or media read URL /// - public partial class MediaLocationUpdateSupportedConfiguration : VocabularyConfiguration + public partial class MediaLocationUpdateSupportedConfiguration : VocabularyTermConfiguration { private bool? _mediaLocationUpdateSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs index 1ae9969..a0e2ff6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Support for query options with modification requests (insert, update, action invocation) /// - public partial class ModificationQueryOptionsConfiguration : VocabularyConfiguration + public partial class ModificationQueryOptionsConfiguration : VocabularyTermConfiguration { private bool? _expandSupported; private bool? _selectSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs index 58eeda6..e4c0ea0 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -14,7 +14,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// Restrictions on navigating properties according to OData URL conventions /// Restrictions specified on an entity set are valid whether the request is directly to the entity set or through a navigation property bound to that entity set. Services can specify a different set of restrictions specific to a path, in which case the more specific restrictions take precedence. /// - public partial class NavigationRestrictionsConfiguration : VocabularyConfiguration + public partial class NavigationRestrictionsConfiguration : VocabularyTermConfiguration { private NavigationType? _navigability; private readonly HashSet _restrictedProperties = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs index 66144b2..000c9c0 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions for function or action operation /// - public partial class OperationRestrictionsConfiguration : VocabularyConfiguration + public partial class OperationRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _filterSegmentSupported; private readonly HashSet _permissions = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs index 48d51a6..19ce245 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) /// - public partial class QuerySegmentSupportedConfiguration : VocabularyConfiguration + public partial class QuerySegmentSupportedConfiguration : VocabularyTermConfiguration { private bool? _querySegmentSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs index e243618..2d3d8de 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions for retrieving a collection of entities, retrieving a singleton instance. /// - public partial class ReadRestrictionsConfiguration : VocabularyConfiguration + public partial class ReadRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _readable; private readonly HashSet _permissions = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs index 4b2a902..fcfdfe0 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions on search expressions /// - public partial class SearchRestrictionsConfiguration : VocabularyConfiguration + public partial class SearchRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _searchable; private SearchExpressions? _unsupportedExpressions; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs index 2332a84..c2bacba 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Support for $select and nested query options within $select /// - public partial class SelectSupportConfiguration : VocabularyConfiguration + public partial class SelectSupportConfiguration : VocabularyTermConfiguration { private bool? _supported; private bool? _instanceAnnotationsSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs index 21bb99e..61013c4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports $skip /// - public partial class SkipSupportedConfiguration : VocabularyConfiguration + public partial class SkipSupportedConfiguration : VocabularyTermConfiguration { private bool? _skipSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs index 852ce34..47ba289 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions on orderby expressions /// - public partial class SortRestrictionsConfiguration : VocabularyConfiguration + public partial class SortRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _sortable; private readonly HashSet _ascendingOnlyProperties = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs index 17ccecc..031fbc3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Media types of supported formats, including format parameters /// - public partial class SupportedFormatsConfiguration : VocabularyConfiguration + public partial class SupportedFormatsConfiguration : VocabularyTermConfiguration { private readonly HashSet _supportedFormats = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs index 43e3694..a6fe3fe 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Media types of supported formats for $metadata, including format parameters /// - public partial class SupportedMetadataFormatsConfiguration : VocabularyConfiguration + public partial class SupportedMetadataFormatsConfiguration : VocabularyTermConfiguration { private readonly HashSet _supportedMetadataFormats = new HashSet(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs index 688f17c..c02de9b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Supports $top /// - public partial class TopSupportedConfiguration : VocabularyConfiguration + public partial class TopSupportedConfiguration : VocabularyTermConfiguration { private bool? _topSupported; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs index 3b578ae..8cee56a 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -13,7 +13,7 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// /// Restrictions on update operations /// - public partial class UpdateRestrictionsConfiguration : VocabularyConfiguration + public partial class UpdateRestrictionsConfiguration : VocabularyTermConfiguration { private bool? _updatable; private bool? _upsertable; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs new file mode 100644 index 0000000..f0614a2 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs @@ -0,0 +1,20 @@ +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Microsoft.OData.ModelBuilder +{ + /// + /// Interface for clr types that can be converted into + /// + public interface IRecord + { + /// + /// Convert a clr type to an + /// + /// + IEdmExpression ToEdmExpression(); + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs new file mode 100644 index 0000000..f459de6 --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs @@ -0,0 +1,51 @@ +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Microsoft.OData.ModelBuilder +{ + /// + /// Base vocabulary configuration. + /// + public abstract partial class VocabularyTermConfiguration : IRecord + { + private readonly string _termName; + + /// + /// Creates a new instance of + /// + /// The name of the being built. + public VocabularyTermConfiguration(string termName) => _termName = termName; + + /// + public abstract IEdmExpression ToEdmExpression(); + + /// + /// Sets the vocabulary annotation on the model's target. + /// + /// The having reference vocabulary models. + /// The to set annotations on. + public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnotatable target) + { + _ = model ?? throw new ArgumentNullException(nameof(model)); + _ = target ?? throw new ArgumentNullException(nameof(target)); + + var expression = ToEdmExpression(); + if (expression == null) + { + return; + } + + var term = model.FindTerm(_termName); + if (term == null) + { + return; + } + + var annotation = new EdmVocabularyAnnotation(target, term, expression); + model.SetVocabularyAnnotation(annotation); + } + } +} diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs similarity index 88% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs index 2196173..5dfa332 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs @@ -13,65 +13,10 @@ namespace Microsoft.OData.ModelBuilder { - /// - /// Interface for clr types that can be converted into - /// - public interface IRecord - { - /// - /// Convert a clr type to an - /// - /// - IEdmExpression ToEdmExpression(); - } - - /// - /// Base vocabulary configuration. - /// - public abstract partial class VocabularyConfiguration : IRecord - { - private readonly string _termName; - - /// - /// Creates a new instance of - /// - /// The name of the being built. - public VocabularyConfiguration(string termName) => _termName = termName; - - /// - public abstract IEdmExpression ToEdmExpression(); - - /// - /// Sets the vocabulary annotation on the model's target. - /// - /// The having reference vocabulary models. - /// The to set annotations on. - public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnotatable target) - { - _ = model ?? throw new ArgumentNullException(nameof(model)); - _ = target ?? throw new ArgumentNullException(nameof(target)); - - var expression = ToEdmExpression(); - if (expression == null) - { - return; - } - - var term = model.FindTerm(_termName); - if (term == null) - { - return; - } - - var annotation = new EdmVocabularyAnnotation(target, term, expression); - model.SetVocabularyAnnotation(annotation); - } - } - /// /// Extension methods for vocabulary builders configurations /// - public static class VocabularyConfigurationExtensions + public static class VocabularyTermConfigurationExtensions { internal static IEdmExpression ToEdmExpression(this string text) => string.IsNullOrEmpty(text) ? null: new EdmStringConstant(text); @@ -275,15 +220,15 @@ public static void SetVocabularyConfigurationAnnotations(this EdmModel model, Ed return; } - foreach (var configuration in navigationConfiguration.VocabularyConfigurations.Values) + foreach (var configuration in navigationConfiguration.VocabularyTermConfigurations.Values) { configuration.SetVocabularyAnnotations(model, (IEdmVocabularyAnnotatable)target); } } - private static TConfiguration GetVocabularyConfiguration(this NavigationSourceConfiguration navigationSource) where TConfiguration : VocabularyConfiguration, new() where TEntity : class + private static TConfiguration GetVocabularyConfiguration(this NavigationSourceConfiguration navigationSource) where TConfiguration : VocabularyTermConfiguration, new() where TEntity : class { - var vocabularyConfigurations = navigationSource.Configuration.VocabularyConfigurations; + var vocabularyConfigurations = navigationSource.Configuration.VocabularyTermConfigurations; if (vocabularyConfigurations.TryGetValue(typeof(TConfiguration), out var configuration)) { return configuration as TConfiguration; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt similarity index 90% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt rename to src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt index ab44508..5a338cd 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyConfiguration.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt @@ -39,65 +39,10 @@ using Microsoft.OData.Edm.Vocabularies; namespace Microsoft.OData.ModelBuilder { - /// - /// Interface for clr types that can be converted into - /// - public interface IRecord - { - /// - /// Convert a clr type to an - /// - /// - IEdmExpression ToEdmExpression(); - } - - /// - /// Base vocabulary configuration. - /// - public abstract partial class VocabularyConfiguration : IRecord - { - private readonly string _termName; - - /// - /// Creates a new instance of - /// - /// The name of the being built. - public VocabularyConfiguration(string termName) => _termName = termName; - - /// - public abstract IEdmExpression ToEdmExpression(); - - /// - /// Sets the vocabulary annotation on the model's target. - /// - /// The having reference vocabulary models. - /// The to set annotations on. - public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnotatable target) - { - _ = model ?? throw new ArgumentNullException(nameof(model)); - _ = target ?? throw new ArgumentNullException(nameof(target)); - - var expression = ToEdmExpression(); - if (expression == null) - { - return; - } - - var term = model.FindTerm(_termName); - if (term == null) - { - return; - } - - var annotation = new EdmVocabularyAnnotation(target, term, expression); - model.SetVocabularyAnnotation(annotation); - } - } - /// /// Extension methods for vocabulary builders configurations /// - public static class VocabularyConfigurationExtensions + public static class VocabularyTermConfigurationExtensions { internal static IEdmExpression ToEdmExpression(this string text) => string.IsNullOrEmpty(text) ? null: new EdmStringConstant(text); @@ -151,7 +96,7 @@ namespace Microsoft.OData.ModelBuilder } } - private static TConfiguration GetVocabularyConfiguration(this NavigationSourceConfiguration navigationSource) where TConfiguration : VocabularyConfiguration, new() where TEntity : class + private static TConfiguration GetVocabularyConfiguration(this NavigationSourceConfiguration navigationSource) where TConfiguration : VocabularyTermConfiguration, new() where TEntity : class { var vocabularyConfigurations = navigationSource.Configuration.VocabularyConfigurations; if (vocabularyConfigurations.TryGetValue(typeof(TConfiguration), out var configuration)) @@ -231,7 +176,7 @@ namespace <#= @namespace #> /// <#+ ProcessSummary(description, " "); #> /// - public partial class <#= clrType #> : VocabularyConfiguration + public partial class <#= clrType #> : VocabularyTermConfiguration { <#+ ProcessPrivateProperties(term.Type.Definition, term.FullName(), @namespace); #> From 40b69e937b21edb0ef2911d125dc77654963a114 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Thu, 18 Jun 2020 15:51:03 +0300 Subject: [PATCH 12/29] xml doc fix. --- .../Microsoft.OData.ModelBuilder.xml | 71 +++++++++++-------- 1 file changed, 42 insertions(+), 29 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml index 29c9001..360180d 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml @@ -1219,7 +1219,7 @@ Gets the name of this navigation source. - + Vocabulary builders to annotate this @@ -5347,6 +5347,7 @@ Change tracking supports filters on these properties + If no properties are specified or FilterableProperties is omitted, clients cannot assume support for filtering on any properties in combination with change tracking. The value(s) to set @@ -5354,6 +5355,7 @@ Change tracking supports these properties expanded + If no properties are specified or ExpandableProperties is omitted, clients cannot assume support for expanding any properties in combination with change tracking. The value(s) to set @@ -5401,6 +5403,7 @@ List of functions and operators supported in filter expressions. + If not specified, null, or empty, all functions and operators may be attempted. The value(s) to set @@ -5450,6 +5453,7 @@ Members can be inserted into this collection + If additionally annotated with [Core.PositionalInsert](Org.OData.Core.V1.md#PositionalInsert), members can be inserted at a specific position The value to set @@ -5608,6 +5612,7 @@ A custom parameter is either a header or a query option + The type of a custom parameter is always a string. Restrictions on the parameter values can be expressed by annotating the record expression describing the parameter with terms from the Validation vocabulary, e.g. Validation.Pattern or Validation.AllowedValues. @@ -5656,6 +5661,7 @@ Custom query options that are supported/required for the annotated resource + If the entity container is annotated, the query option is supported/required by all resources in that container. @@ -5666,6 +5672,7 @@ Custom query options that are supported/required for the annotated resource + If the entity container is annotated, the query option is supported/required by all resources in that container. The value(s) to set @@ -5881,6 +5888,7 @@ List of functions and operators supported in filter expressions. + If not specified, null, or empty, all functions and operators may be attempted. @@ -5891,6 +5899,7 @@ List of functions and operators supported in filter expressions. + If not specified, null, or empty, all functions and operators may be attempted. The value(s) to set @@ -6215,6 +6224,7 @@ List of functions and operators supported in filter expressions. + If not specified, null, or empty, all functions and operators may be attempted. The value(s) to set @@ -6323,6 +6333,7 @@ Restrictions on navigating properties according to OData URL conventions + Restrictions specified on an entity set are valid whether the request is directly to the entity set or through a navigation property bound to that entity set. Services can specify a different set of restrictions specific to a path, in which case the more specific restrictions take precedence. @@ -6565,6 +6576,7 @@ Restrictions for retrieving an entity by key + Only valid when applied to a collection. If a property of `ReadByKeyRestrictions` is not specified, the corresponding property value of `ReadRestrictions` applies. The value to set @@ -6592,6 +6604,7 @@ Comma-separated string value of all properties that will be included or excluded when using the scope. + Possible string value identifiers when specifying properties are '*', _PropertyName_, '-'_PropertyName_. Where, '*' denotes all properties are accessible,'-'_PropertyName_ excludes that specific property and _PropertyName_ explicitly provides access to the specific property. The absence of 'RestrictedProperties' denotes all properties are accessible using that scope. The value to set @@ -7007,33 +7020,33 @@ - + Base vocabulary configuration. - + - Creates a new instance of + Creates a new instance of The name of the being built. - + - + Sets the vocabulary annotation on the model's target. The having reference vocabulary models. The to set annotations on. - + Extension methods for vocabulary builders configurations - + configuration @@ -7041,7 +7054,7 @@ The that can be built using . - + configuration @@ -7049,7 +7062,7 @@ The that can be built using . - + configuration @@ -7057,7 +7070,7 @@ The that can be built using . - + configuration @@ -7065,7 +7078,7 @@ The that can be built using . - + configuration @@ -7073,7 +7086,7 @@ The that can be built using . - + configuration @@ -7081,7 +7094,7 @@ The that can be built using . - + configuration @@ -7089,7 +7102,7 @@ The that can be built using . - + configuration @@ -7097,7 +7110,7 @@ The that can be built using . - + configuration @@ -7105,7 +7118,7 @@ The that can be built using . - + configuration @@ -7113,7 +7126,7 @@ The that can be built using . - + configuration @@ -7121,7 +7134,7 @@ The that can be built using . - + configuration @@ -7129,7 +7142,7 @@ The that can be built using . - + configuration @@ -7137,7 +7150,7 @@ The that can be built using . - + configuration @@ -7145,7 +7158,7 @@ The that can be built using . - + configuration @@ -7153,7 +7166,7 @@ The that can be built using . - + configuration @@ -7161,7 +7174,7 @@ The that can be built using . - + configuration @@ -7169,7 +7182,7 @@ The that can be built using . - + configuration @@ -7177,7 +7190,7 @@ The that can be built using . - + configuration @@ -7185,7 +7198,7 @@ The that can be built using . - + configuration @@ -7193,7 +7206,7 @@ The that can be built using . - + configuration @@ -7201,7 +7214,7 @@ The that can be built using . - + Apply all builders as configured From e59dd705de6076abd6d04a2ef570f36576e10117 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Thu, 18 Jun 2020 20:52:38 +0300 Subject: [PATCH 13/29] Bug fixes, tests for usage and bsl and xml changes. --- .../Helpers/EdmModelHelperMethods.cs | 1 + .../Microsoft.OData.ModelBuilder.xml | 185 ++++++++----- .../Operations/OperationConfiguration.cs | 5 + ...tionValuesInQuerySupportedConfiguration.cs | 2 +- ...nchronousRequestsSupportedConfiguration.cs | 2 +- ...chContinueOnErrorSupportedConfiguration.cs | 2 +- .../V1/BatchSupportConfiguration.cs | 12 +- .../V1/BatchSupportedConfiguration.cs | 2 +- .../V1/ChangeTrackingConfiguration.cs | 2 +- ...onPropertyRestrictionsTypeConfiguration.cs | 10 +- .../V1/ComputeSupportedConfiguration.cs | 2 +- .../V1/CountRestrictionsConfiguration.cs | 2 +- .../V1/CrossJoinSupportedConfiguration.cs | 2 +- .../V1/CustomParameterConfiguration.cs | 2 +- .../V1/DeepInsertSupportConfiguration.cs | 4 +- .../V1/DeepUpdateSupportConfiguration.cs | 4 +- .../V1/DeleteRestrictionsConfiguration.cs | 6 +- .../V1/ExpandRestrictionsConfiguration.cs | 4 +- .../V1/FilterRestrictionsConfiguration.cs | 4 +- .../V1/IndexableByKeyConfiguration.cs | 2 +- .../V1/InsertRestrictionsConfiguration.cs | 4 +- .../V1/KeyAsSegmentSupportedConfiguration.cs | 2 +- ...diaLocationUpdateSupportedConfiguration.cs | 2 +- .../ModificationQueryOptionsConfiguration.cs | 12 +- ...igationPropertyRestrictionConfiguration.cs | 8 +- .../V1/OperationRestrictionsConfiguration.cs | 2 +- .../V1/QuerySegmentSupportedConfiguration.cs | 2 +- .../ReadByKeyRestrictionsTypeConfiguration.cs | 2 +- .../V1/ReadRestrictionsConfiguration.cs | 2 +- .../V1/SearchRestrictionsConfiguration.cs | 2 +- .../V1/SelectSupportConfiguration.cs | 20 +- .../V1/SkipSupportedConfiguration.cs | 2 +- .../V1/SortRestrictionsConfiguration.cs | 2 +- .../V1/TopSupportedConfiguration.cs | 2 +- .../V1/UpdateRestrictionsConfiguration.cs | 10 +- .../VocabularyTermConfigurationExtensions.cs | 107 +++++--- .../VocabularyTermConfigurationExtensions.tt | 95 +++++-- ...Microsoft.OData.ModelBuilder.PublicApi.bsl | 252 ++++++++++-------- ...> DeleteRestrictionsConfigurationTests.cs} | 17 +- ...OperationRestrictionsConfigurationTests.cs | 112 ++++++++ 40 files changed, 600 insertions(+), 312 deletions(-) rename test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/{DeleteRestrictionsTests.cs => DeleteRestrictionsConfigurationTests.cs} (90%) create mode 100644 test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs diff --git a/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs b/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs index c821b00..4db82bc 100644 --- a/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs +++ b/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs @@ -332,6 +332,7 @@ private static void AddOperations(this EdmModel model, IEnumerable + + + Vocabulary builders to annotate this + + Get the bindingParameter. @@ -5141,7 +5146,7 @@ Creates a new instance of - + Supports annotation values within system query options @@ -5161,7 +5166,7 @@ Creates a new instance of - + Service supports the asynchronous request preference @@ -5181,7 +5186,7 @@ Creates a new instance of - + Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. @@ -5201,42 +5206,42 @@ Creates a new instance of - + Service supports requests to $batch The value to set - + Service supports the continue on error preference The value to set - + Service supports Content-ID referencing in request bodies The value to set - + Service supports Content-ID referencing across change sets The value to set - + Service supports referencing Etags from previous requests The value to set - + Service supports the `if` member in JSON batch requests @@ -5263,7 +5268,7 @@ Creates a new instance of - + Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. @@ -5337,7 +5342,7 @@ Creates a new instance of - + This entity set supports the odata.track-changes preference @@ -5429,14 +5434,14 @@ The value to set - + Supports $top The value to set - + Supports $skip @@ -5450,7 +5455,7 @@ The value to set - + Members can be inserted into this collection If additionally annotated with [Core.PositionalInsert](Org.OData.Core.V1.md#PositionalInsert), members can be inserted at a specific position @@ -5458,14 +5463,14 @@ The value to set - + Members of this ordered collection can be updated by ordinal The value to set - + Members of this ordered collection can be deleted by ordinal @@ -5485,7 +5490,7 @@ Creates a new instance of - + Supports $compute @@ -5545,7 +5550,7 @@ Creates a new instance of - + Entities can be counted @@ -5579,7 +5584,7 @@ Creates a new instance of - + Supports cross joins for the entity sets in this container @@ -5641,7 +5646,7 @@ The value to set - + true: parameter is required, false or not specified: parameter is optional @@ -5690,14 +5695,14 @@ Creates a new instance of - + Annotation target supports deep inserts The value to set - + Annotation target supports accepting and returning nested entities annotated with the `Core.ContentID` instance annotation. @@ -5717,14 +5722,14 @@ Creates a new instance of - + Annotation target supports deep updates The value to set - + Annotation target supports accepting and returning nested entities annotated with the `Core.ContentID` instance annotation. @@ -5744,7 +5749,7 @@ Creates a new instance of - + Entities can be deleted @@ -5765,14 +5770,14 @@ The value to set - + Members of collections can be updated via a PATCH request with a `/$filter(...)/$each` segment The value to set - + Members of collections can be updated via a PATCH request with a type-cast segment and a `/$each` segment @@ -5827,14 +5832,14 @@ Creates a new instance of - + $expand is supported The value to set - + $expand is supported for stream properties and media resources @@ -5917,14 +5922,14 @@ Creates a new instance of - + $filter is supported The value to set - + $filter is required @@ -5972,7 +5977,7 @@ Creates a new instance of - + Supports key values according to OData URL conventions @@ -5992,7 +5997,7 @@ Creates a new instance of - + Entities can be inserted @@ -6020,7 +6025,7 @@ The value to set - + Entities of a specific derived type can be created by specifying a type-cast segment @@ -6112,7 +6117,7 @@ Creates a new instance of - + Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection @@ -6132,7 +6137,7 @@ Creates a new instance of - + Stream property supports update of its media edit URL and/or media read URL @@ -6152,42 +6157,42 @@ Creates a new instance of - + Supports $expand with modification requests The value to set - + Supports $select with modification requests The value to set - + Supports $compute with modification requests The value to set - + Supports $filter with modification requests The value to set - + Supports $search with modification requests The value to set - + Supports $orderby with modification requests @@ -6250,14 +6255,14 @@ The value to set - + Supports $top The value to set - + Supports $skip @@ -6271,7 +6276,7 @@ The value to set - + Supports key values according to OData URL conventions @@ -6313,7 +6318,7 @@ The value to set - + Data modification (including insert) along this navigation property requires the use of ETags @@ -6388,7 +6393,7 @@ Creates a new instance of - + Bound action or function can be invoked on a collection-valued binding parameter path with a `/$filter(...)` segment @@ -6456,7 +6461,7 @@ Creates a new instance of - + Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) @@ -6476,7 +6481,7 @@ Creates a new instance of - + Entities can be retrieved @@ -6531,7 +6536,7 @@ Creates a new instance of - + Entities can be retrieved @@ -6657,7 +6662,7 @@ Creates a new instance of - + $search is supported @@ -6684,70 +6689,70 @@ Creates a new instance of - + Supports $select The value to set - + Supports instance annotations in $select list The value to set - + $expand within $select is supported The value to set - + $filter within $select is supported The value to set - + $search within $select is supported The value to set - + $top within $select is supported The value to set - + $skip within $select is supported The value to set - + $compute within $select is supported The value to set - + $count within $select is supported The value to set - + $orderby within $select is supported @@ -6767,7 +6772,7 @@ Creates a new instance of - + Supports $skip @@ -6787,7 +6792,7 @@ Creates a new instance of - + $orderby is supported @@ -6868,7 +6873,7 @@ Creates a new instance of - + Supports $top @@ -6888,35 +6893,35 @@ Creates a new instance of - + Entities can be updated The value to set - + Entities can be upserted The value to set - + Entities can be inserted, updated, and deleted via a PATCH request with a delta payload The value to set - + Members of collections can be updated via a PATCH request with a `/$filter(...)/$each` segment The value to set - + Members of collections can be updated via a PATCH request with a type-cast segment and a `/$each` segment @@ -7062,6 +7067,13 @@ The that can be built using . + + + configuration + + The that can be built using . + + configuration @@ -7206,6 +7218,20 @@ The that can be built using . + + + configuration + + The that can be built using . + + + + + configuration + + The that can be built using . + + configuration @@ -7216,8 +7242,27 @@ - Apply all builders as configured + Add vocabulary annotations to a model target. + + to add annotations to + to annotate + containing the collection of annotation configurations + + + + Add vocabulary annotations to a model target. + + to add annotations to + to annotate + containing the collection of annotation configurations + + + + Add vocabulary annotations to a model target. + to add annotations to + to annotate + Collection of annotation configurations diff --git a/src/Microsoft.OData.ModelBuilder/Operations/OperationConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Operations/OperationConfiguration.cs index cdcd4e1..57da2c7 100644 --- a/src/Microsoft.OData.ModelBuilder/Operations/OperationConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Operations/OperationConfiguration.cs @@ -96,6 +96,11 @@ public string Namespace /// public IEnumerable EntitySetPath { get; internal set; } + /// + /// Vocabulary builders to annotate this + /// + public Dictionary VocabularyTermConfigurations { get; } = new Dictionary(); + /// /// Get the bindingParameter. /// Null means the operation has no bindingParameter. diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs index 7f15caf..77c427f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs @@ -30,7 +30,7 @@ public AnnotationValuesInQuerySupportedConfiguration() /// /// The value to set /// - public AnnotationValuesInQuerySupportedConfiguration HasAnnotationValuesInQuerySupported(bool annotationValuesInQuerySupported) + public AnnotationValuesInQuerySupportedConfiguration IsAnnotationValuesInQuerySupported(bool annotationValuesInQuerySupported) { _annotationValuesInQuerySupported = annotationValuesInQuerySupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs index c2cb6ff..f4cd409 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs @@ -30,7 +30,7 @@ public AsynchronousRequestsSupportedConfiguration() /// /// The value to set /// - public AsynchronousRequestsSupportedConfiguration HasAsynchronousRequestsSupported(bool asynchronousRequestsSupported) + public AsynchronousRequestsSupportedConfiguration IsAsynchronousRequestsSupported(bool asynchronousRequestsSupported) { _asynchronousRequestsSupported = asynchronousRequestsSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs index fd9bfb4..4c93dcb 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs @@ -30,7 +30,7 @@ public BatchContinueOnErrorSupportedConfiguration() /// /// The value to set /// - public BatchContinueOnErrorSupportedConfiguration HasBatchContinueOnErrorSupported(bool batchContinueOnErrorSupported) + public BatchContinueOnErrorSupportedConfiguration IsBatchContinueOnErrorSupported(bool batchContinueOnErrorSupported) { _batchContinueOnErrorSupported = batchContinueOnErrorSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs index bac6c74..561dbec 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs @@ -36,7 +36,7 @@ public BatchSupportConfiguration() /// /// The value to set /// - public BatchSupportConfiguration HasSupported(bool supported) + public BatchSupportConfiguration IsSupported(bool supported) { _supported = supported; return this; @@ -47,7 +47,7 @@ public BatchSupportConfiguration HasSupported(bool supported) /// /// The value to set /// - public BatchSupportConfiguration HasContinueOnErrorSupported(bool continueOnErrorSupported) + public BatchSupportConfiguration IsContinueOnErrorSupported(bool continueOnErrorSupported) { _continueOnErrorSupported = continueOnErrorSupported; return this; @@ -58,7 +58,7 @@ public BatchSupportConfiguration HasContinueOnErrorSupported(bool continueOnErro /// /// The value to set /// - public BatchSupportConfiguration HasReferencesInRequestBodiesSupported(bool referencesInRequestBodiesSupported) + public BatchSupportConfiguration IsReferencesInRequestBodiesSupported(bool referencesInRequestBodiesSupported) { _referencesInRequestBodiesSupported = referencesInRequestBodiesSupported; return this; @@ -69,7 +69,7 @@ public BatchSupportConfiguration HasReferencesInRequestBodiesSupported(bool refe /// /// The value to set /// - public BatchSupportConfiguration HasReferencesAcrossChangeSetsSupported(bool referencesAcrossChangeSetsSupported) + public BatchSupportConfiguration IsReferencesAcrossChangeSetsSupported(bool referencesAcrossChangeSetsSupported) { _referencesAcrossChangeSetsSupported = referencesAcrossChangeSetsSupported; return this; @@ -80,7 +80,7 @@ public BatchSupportConfiguration HasReferencesAcrossChangeSetsSupported(bool ref /// /// The value to set /// - public BatchSupportConfiguration HasEtagReferencesSupported(bool etagReferencesSupported) + public BatchSupportConfiguration IsEtagReferencesSupported(bool etagReferencesSupported) { _etagReferencesSupported = etagReferencesSupported; return this; @@ -91,7 +91,7 @@ public BatchSupportConfiguration HasEtagReferencesSupported(bool etagReferencesS /// /// The value to set /// - public BatchSupportConfiguration HasRequestDependencyConditionsSupported(bool requestDependencyConditionsSupported) + public BatchSupportConfiguration IsRequestDependencyConditionsSupported(bool requestDependencyConditionsSupported) { _requestDependencyConditionsSupported = requestDependencyConditionsSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs index 4dd5cab..45c6697 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs @@ -30,7 +30,7 @@ public BatchSupportedConfiguration() /// /// The value to set /// - public BatchSupportedConfiguration HasBatchSupported(bool batchSupported) + public BatchSupportedConfiguration IsBatchSupported(bool batchSupported) { _batchSupported = batchSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs index 8dc6115..a07c662 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs @@ -32,7 +32,7 @@ public ChangeTrackingConfiguration() /// /// The value to set /// - public ChangeTrackingConfiguration HasSupported(bool supported) + public ChangeTrackingConfiguration IsSupported(bool supported) { _supported = supported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs index a31cca5..4d14fc5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -99,7 +99,7 @@ public CollectionPropertyRestrictionsTypeConfiguration HasSortRestrictions(SortR /// /// The value to set /// - public CollectionPropertyRestrictionsTypeConfiguration HasTopSupported(bool topSupported) + public CollectionPropertyRestrictionsTypeConfiguration IsTopSupported(bool topSupported) { _topSupported = topSupported; return this; @@ -110,7 +110,7 @@ public CollectionPropertyRestrictionsTypeConfiguration HasTopSupported(bool topS /// /// The value to set /// - public CollectionPropertyRestrictionsTypeConfiguration HasSkipSupported(bool skipSupported) + public CollectionPropertyRestrictionsTypeConfiguration IsSkipSupported(bool skipSupported) { _skipSupported = skipSupported; return this; @@ -133,7 +133,7 @@ public CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport(SelectSu /// /// The value to set /// - public CollectionPropertyRestrictionsTypeConfiguration HasInsertable(bool insertable) + public CollectionPropertyRestrictionsTypeConfiguration IsInsertable(bool insertable) { _insertable = insertable; return this; @@ -144,7 +144,7 @@ public CollectionPropertyRestrictionsTypeConfiguration HasInsertable(bool insert /// /// The value to set /// - public CollectionPropertyRestrictionsTypeConfiguration HasUpdatable(bool updatable) + public CollectionPropertyRestrictionsTypeConfiguration IsUpdatable(bool updatable) { _updatable = updatable; return this; @@ -155,7 +155,7 @@ public CollectionPropertyRestrictionsTypeConfiguration HasUpdatable(bool updatab /// /// The value to set /// - public CollectionPropertyRestrictionsTypeConfiguration HasDeletable(bool deletable) + public CollectionPropertyRestrictionsTypeConfiguration IsDeletable(bool deletable) { _deletable = deletable; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs index e066b6a..3276fa5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs @@ -30,7 +30,7 @@ public ComputeSupportedConfiguration() /// /// The value to set /// - public ComputeSupportedConfiguration HasComputeSupported(bool computeSupported) + public ComputeSupportedConfiguration IsComputeSupported(bool computeSupported) { _computeSupported = computeSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs index 9c0fa59..89b6743 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs @@ -32,7 +32,7 @@ public CountRestrictionsConfiguration() /// /// The value to set /// - public CountRestrictionsConfiguration HasCountable(bool countable) + public CountRestrictionsConfiguration IsCountable(bool countable) { _countable = countable; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs index 683003b..513d654 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs @@ -30,7 +30,7 @@ public CrossJoinSupportedConfiguration() /// /// The value to set /// - public CrossJoinSupportedConfiguration HasCrossJoinSupported(bool crossJoinSupported) + public CrossJoinSupportedConfiguration IsCrossJoinSupported(bool crossJoinSupported) { _crossJoinSupported = crossJoinSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs index c005cdd..e6578f1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs @@ -67,7 +67,7 @@ public CustomParameterConfiguration HasDocumentationURL(string documentationURL) /// /// The value to set /// - public CustomParameterConfiguration HasRequired(bool required) + public CustomParameterConfiguration IsRequired(bool required) { _required = required; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs index 4508ca2..fd38efc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs @@ -31,7 +31,7 @@ public DeepInsertSupportConfiguration() /// /// The value to set /// - public DeepInsertSupportConfiguration HasSupported(bool supported) + public DeepInsertSupportConfiguration IsSupported(bool supported) { _supported = supported; return this; @@ -42,7 +42,7 @@ public DeepInsertSupportConfiguration HasSupported(bool supported) /// /// The value to set /// - public DeepInsertSupportConfiguration HasContentIDSupported(bool contentIDSupported) + public DeepInsertSupportConfiguration IsContentIDSupported(bool contentIDSupported) { _contentIDSupported = contentIDSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs index fc41bd2..1f7fbba 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs @@ -31,7 +31,7 @@ public DeepUpdateSupportConfiguration() /// /// The value to set /// - public DeepUpdateSupportConfiguration HasSupported(bool supported) + public DeepUpdateSupportConfiguration IsSupported(bool supported) { _supported = supported; return this; @@ -42,7 +42,7 @@ public DeepUpdateSupportConfiguration HasSupported(bool supported) /// /// The value to set /// - public DeepUpdateSupportConfiguration HasContentIDSupported(bool contentIDSupported) + public DeepUpdateSupportConfiguration IsContentIDSupported(bool contentIDSupported) { _contentIDSupported = contentIDSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs index 5f52569..d2880ba 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -39,7 +39,7 @@ public DeleteRestrictionsConfiguration() /// /// The value to set /// - public DeleteRestrictionsConfiguration HasDeletable(bool deletable) + public DeleteRestrictionsConfiguration IsDeletable(bool deletable) { _deletable = deletable; return this; @@ -76,7 +76,7 @@ public DeleteRestrictionsConfiguration HasMaxLevels(int maxLevels) /// /// The value to set /// - public DeleteRestrictionsConfiguration HasFilterSegmentSupported(bool filterSegmentSupported) + public DeleteRestrictionsConfiguration IsFilterSegmentSupported(bool filterSegmentSupported) { _filterSegmentSupported = filterSegmentSupported; return this; @@ -87,7 +87,7 @@ public DeleteRestrictionsConfiguration HasFilterSegmentSupported(bool filterSegm /// /// The value to set /// - public DeleteRestrictionsConfiguration HasTypecastSegmentSupported(bool typecastSegmentSupported) + public DeleteRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastSegmentSupported) { _typecastSegmentSupported = typecastSegmentSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs index 02f2d86..3025263 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs @@ -33,7 +33,7 @@ public ExpandRestrictionsConfiguration() /// /// The value to set /// - public ExpandRestrictionsConfiguration HasExpandable(bool expandable) + public ExpandRestrictionsConfiguration IsExpandable(bool expandable) { _expandable = expandable; return this; @@ -44,7 +44,7 @@ public ExpandRestrictionsConfiguration HasExpandable(bool expandable) /// /// The value to set /// - public ExpandRestrictionsConfiguration HasStreamsExpandable(bool streamsExpandable) + public ExpandRestrictionsConfiguration IsStreamsExpandable(bool streamsExpandable) { _streamsExpandable = streamsExpandable; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs index 97b734d..7b5199b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs @@ -35,7 +35,7 @@ public FilterRestrictionsConfiguration() /// /// The value to set /// - public FilterRestrictionsConfiguration HasFilterable(bool filterable) + public FilterRestrictionsConfiguration IsFilterable(bool filterable) { _filterable = filterable; return this; @@ -46,7 +46,7 @@ public FilterRestrictionsConfiguration HasFilterable(bool filterable) /// /// The value to set /// - public FilterRestrictionsConfiguration HasRequiresFilter(bool requiresFilter) + public FilterRestrictionsConfiguration IsRequiresFilter(bool requiresFilter) { _requiresFilter = requiresFilter; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs index 0197378..01f3f18 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs @@ -30,7 +30,7 @@ public IndexableByKeyConfiguration() /// /// The value to set /// - public IndexableByKeyConfiguration HasIndexableByKey(bool indexableByKey) + public IndexableByKeyConfiguration IsIndexableByKey(bool indexableByKey) { _indexableByKey = indexableByKey; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs index 4d56efd..cbd1c7d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -40,7 +40,7 @@ public InsertRestrictionsConfiguration() /// /// The value to set /// - public InsertRestrictionsConfiguration HasInsertable(bool insertable) + public InsertRestrictionsConfiguration IsInsertable(bool insertable) { _insertable = insertable; return this; @@ -92,7 +92,7 @@ public InsertRestrictionsConfiguration HasMaxLevels(int maxLevels) /// /// The value to set /// - public InsertRestrictionsConfiguration HasTypecastSegmentSupported(bool typecastSegmentSupported) + public InsertRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastSegmentSupported) { _typecastSegmentSupported = typecastSegmentSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs index 959a8c9..9b57707 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs @@ -30,7 +30,7 @@ public KeyAsSegmentSupportedConfiguration() /// /// The value to set /// - public KeyAsSegmentSupportedConfiguration HasKeyAsSegmentSupported(bool keyAsSegmentSupported) + public KeyAsSegmentSupportedConfiguration IsKeyAsSegmentSupported(bool keyAsSegmentSupported) { _keyAsSegmentSupported = keyAsSegmentSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs index cb927d9..ba75770 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs @@ -30,7 +30,7 @@ public MediaLocationUpdateSupportedConfiguration() /// /// The value to set /// - public MediaLocationUpdateSupportedConfiguration HasMediaLocationUpdateSupported(bool mediaLocationUpdateSupported) + public MediaLocationUpdateSupportedConfiguration IsMediaLocationUpdateSupported(bool mediaLocationUpdateSupported) { _mediaLocationUpdateSupported = mediaLocationUpdateSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs index a0e2ff6..226a6e6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs @@ -35,7 +35,7 @@ public ModificationQueryOptionsConfiguration() /// /// The value to set /// - public ModificationQueryOptionsConfiguration HasExpandSupported(bool expandSupported) + public ModificationQueryOptionsConfiguration IsExpandSupported(bool expandSupported) { _expandSupported = expandSupported; return this; @@ -46,7 +46,7 @@ public ModificationQueryOptionsConfiguration HasExpandSupported(bool expandSuppo /// /// The value to set /// - public ModificationQueryOptionsConfiguration HasSelectSupported(bool selectSupported) + public ModificationQueryOptionsConfiguration IsSelectSupported(bool selectSupported) { _selectSupported = selectSupported; return this; @@ -57,7 +57,7 @@ public ModificationQueryOptionsConfiguration HasSelectSupported(bool selectSuppo /// /// The value to set /// - public ModificationQueryOptionsConfiguration HasComputeSupported(bool computeSupported) + public ModificationQueryOptionsConfiguration IsComputeSupported(bool computeSupported) { _computeSupported = computeSupported; return this; @@ -68,7 +68,7 @@ public ModificationQueryOptionsConfiguration HasComputeSupported(bool computeSup /// /// The value to set /// - public ModificationQueryOptionsConfiguration HasFilterSupported(bool filterSupported) + public ModificationQueryOptionsConfiguration IsFilterSupported(bool filterSupported) { _filterSupported = filterSupported; return this; @@ -79,7 +79,7 @@ public ModificationQueryOptionsConfiguration HasFilterSupported(bool filterSuppo /// /// The value to set /// - public ModificationQueryOptionsConfiguration HasSearchSupported(bool searchSupported) + public ModificationQueryOptionsConfiguration IsSearchSupported(bool searchSupported) { _searchSupported = searchSupported; return this; @@ -90,7 +90,7 @@ public ModificationQueryOptionsConfiguration HasSearchSupported(bool searchSuppo /// /// The value to set /// - public ModificationQueryOptionsConfiguration HasSortSupported(bool sortSupported) + public ModificationQueryOptionsConfiguration IsSortSupported(bool sortSupported) { _sortSupported = sortSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs index 307f663..cf3e56c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -116,7 +116,7 @@ public NavigationPropertyRestrictionConfiguration HasSortRestrictions(SortRestri /// /// The value to set /// - public NavigationPropertyRestrictionConfiguration HasTopSupported(bool topSupported) + public NavigationPropertyRestrictionConfiguration IsTopSupported(bool topSupported) { _topSupported = topSupported; return this; @@ -127,7 +127,7 @@ public NavigationPropertyRestrictionConfiguration HasTopSupported(bool topSuppor /// /// The value to set /// - public NavigationPropertyRestrictionConfiguration HasSkipSupported(bool skipSupported) + public NavigationPropertyRestrictionConfiguration IsSkipSupported(bool skipSupported) { _skipSupported = skipSupported; return this; @@ -149,7 +149,7 @@ public NavigationPropertyRestrictionConfiguration HasSelectSupport(SelectSupport /// /// The value to set /// - public NavigationPropertyRestrictionConfiguration HasIndexableByKey(bool indexableByKey) + public NavigationPropertyRestrictionConfiguration IsIndexableByKey(bool indexableByKey) { _indexableByKey = indexableByKey; return this; @@ -215,7 +215,7 @@ public NavigationPropertyRestrictionConfiguration HasDeleteRestrictions(DeleteRe /// /// The value to set /// - public NavigationPropertyRestrictionConfiguration HasOptimisticConcurrencyControl(bool optimisticConcurrencyControl) + public NavigationPropertyRestrictionConfiguration IsOptimisticConcurrencyControl(bool optimisticConcurrencyControl) { _optimisticConcurrencyControl = optimisticConcurrencyControl; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs index 000c9c0..1b31224 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -33,7 +33,7 @@ public OperationRestrictionsConfiguration() /// /// The value to set /// - public OperationRestrictionsConfiguration HasFilterSegmentSupported(bool filterSegmentSupported) + public OperationRestrictionsConfiguration IsFilterSegmentSupported(bool filterSegmentSupported) { _filterSegmentSupported = filterSegmentSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs index 19ce245..977442c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs @@ -30,7 +30,7 @@ public QuerySegmentSupportedConfiguration() /// /// The value to set /// - public QuerySegmentSupportedConfiguration HasQuerySegmentSupported(bool querySegmentSupported) + public QuerySegmentSupportedConfiguration IsQuerySegmentSupported(bool querySegmentSupported) { _querySegmentSupported = querySegmentSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index ca5547a..6fd1b59 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -34,7 +34,7 @@ public ReadByKeyRestrictionsTypeConfiguration() /// /// The value to set /// - public ReadByKeyRestrictionsTypeConfiguration HasReadable(bool readable) + public ReadByKeyRestrictionsTypeConfiguration IsReadable(bool readable) { _readable = readable; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs index 2d3d8de..5437d8c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -36,7 +36,7 @@ public ReadRestrictionsConfiguration() /// /// The value to set /// - public ReadRestrictionsConfiguration HasReadable(bool readable) + public ReadRestrictionsConfiguration IsReadable(bool readable) { _readable = readable; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs index fcfdfe0..133b730 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs @@ -31,7 +31,7 @@ public SearchRestrictionsConfiguration() /// /// The value to set /// - public SearchRestrictionsConfiguration HasSearchable(bool searchable) + public SearchRestrictionsConfiguration IsSearchable(bool searchable) { _searchable = searchable; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs index c2bacba..82174eb 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs @@ -39,7 +39,7 @@ public SelectSupportConfiguration() /// /// The value to set /// - public SelectSupportConfiguration HasSupported(bool supported) + public SelectSupportConfiguration IsSupported(bool supported) { _supported = supported; return this; @@ -50,7 +50,7 @@ public SelectSupportConfiguration HasSupported(bool supported) /// /// The value to set /// - public SelectSupportConfiguration HasInstanceAnnotationsSupported(bool instanceAnnotationsSupported) + public SelectSupportConfiguration IsInstanceAnnotationsSupported(bool instanceAnnotationsSupported) { _instanceAnnotationsSupported = instanceAnnotationsSupported; return this; @@ -61,7 +61,7 @@ public SelectSupportConfiguration HasInstanceAnnotationsSupported(bool instanceA /// /// The value to set /// - public SelectSupportConfiguration HasExpandable(bool expandable) + public SelectSupportConfiguration IsExpandable(bool expandable) { _expandable = expandable; return this; @@ -72,7 +72,7 @@ public SelectSupportConfiguration HasExpandable(bool expandable) /// /// The value to set /// - public SelectSupportConfiguration HasFilterable(bool filterable) + public SelectSupportConfiguration IsFilterable(bool filterable) { _filterable = filterable; return this; @@ -83,7 +83,7 @@ public SelectSupportConfiguration HasFilterable(bool filterable) /// /// The value to set /// - public SelectSupportConfiguration HasSearchable(bool searchable) + public SelectSupportConfiguration IsSearchable(bool searchable) { _searchable = searchable; return this; @@ -94,7 +94,7 @@ public SelectSupportConfiguration HasSearchable(bool searchable) /// /// The value to set /// - public SelectSupportConfiguration HasTopSupported(bool topSupported) + public SelectSupportConfiguration IsTopSupported(bool topSupported) { _topSupported = topSupported; return this; @@ -105,7 +105,7 @@ public SelectSupportConfiguration HasTopSupported(bool topSupported) /// /// The value to set /// - public SelectSupportConfiguration HasSkipSupported(bool skipSupported) + public SelectSupportConfiguration IsSkipSupported(bool skipSupported) { _skipSupported = skipSupported; return this; @@ -116,7 +116,7 @@ public SelectSupportConfiguration HasSkipSupported(bool skipSupported) /// /// The value to set /// - public SelectSupportConfiguration HasComputeSupported(bool computeSupported) + public SelectSupportConfiguration IsComputeSupported(bool computeSupported) { _computeSupported = computeSupported; return this; @@ -127,7 +127,7 @@ public SelectSupportConfiguration HasComputeSupported(bool computeSupported) /// /// The value to set /// - public SelectSupportConfiguration HasCountable(bool countable) + public SelectSupportConfiguration IsCountable(bool countable) { _countable = countable; return this; @@ -138,7 +138,7 @@ public SelectSupportConfiguration HasCountable(bool countable) /// /// The value to set /// - public SelectSupportConfiguration HasSortable(bool sortable) + public SelectSupportConfiguration IsSortable(bool sortable) { _sortable = sortable; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs index 61013c4..d14128f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs @@ -30,7 +30,7 @@ public SkipSupportedConfiguration() /// /// The value to set /// - public SkipSupportedConfiguration HasSkipSupported(bool skipSupported) + public SkipSupportedConfiguration IsSkipSupported(bool skipSupported) { _skipSupported = skipSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs index 47ba289..5d0065a 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs @@ -33,7 +33,7 @@ public SortRestrictionsConfiguration() /// /// The value to set /// - public SortRestrictionsConfiguration HasSortable(bool sortable) + public SortRestrictionsConfiguration IsSortable(bool sortable) { _sortable = sortable; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs index c02de9b..52799b1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs @@ -30,7 +30,7 @@ public TopSupportedConfiguration() /// /// The value to set /// - public TopSupportedConfiguration HasTopSupported(bool topSupported) + public TopSupportedConfiguration IsTopSupported(bool topSupported) { _topSupported = topSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs index 8cee56a..23411b1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -42,7 +42,7 @@ public UpdateRestrictionsConfiguration() /// /// The value to set /// - public UpdateRestrictionsConfiguration HasUpdatable(bool updatable) + public UpdateRestrictionsConfiguration IsUpdatable(bool updatable) { _updatable = updatable; return this; @@ -53,7 +53,7 @@ public UpdateRestrictionsConfiguration HasUpdatable(bool updatable) /// /// The value to set /// - public UpdateRestrictionsConfiguration HasUpsertable(bool upsertable) + public UpdateRestrictionsConfiguration IsUpsertable(bool upsertable) { _upsertable = upsertable; return this; @@ -64,7 +64,7 @@ public UpdateRestrictionsConfiguration HasUpsertable(bool upsertable) /// /// The value to set /// - public UpdateRestrictionsConfiguration HasDeltaUpdateSupported(bool deltaUpdateSupported) + public UpdateRestrictionsConfiguration IsDeltaUpdateSupported(bool deltaUpdateSupported) { _deltaUpdateSupported = deltaUpdateSupported; return this; @@ -75,7 +75,7 @@ public UpdateRestrictionsConfiguration HasDeltaUpdateSupported(bool deltaUpdateS /// /// The value to set /// - public UpdateRestrictionsConfiguration HasFilterSegmentSupported(bool filterSegmentSupported) + public UpdateRestrictionsConfiguration IsFilterSegmentSupported(bool filterSegmentSupported) { _filterSegmentSupported = filterSegmentSupported; return this; @@ -86,7 +86,7 @@ public UpdateRestrictionsConfiguration HasFilterSegmentSupported(bool filterSegm /// /// The value to set /// - public UpdateRestrictionsConfiguration HasTypecastSegmentSupported(bool typecastSegmentSupported) + public UpdateRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastSegmentSupported) { _typecastSegmentSupported = typecastSegmentSupported; return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs index 5dfa332..972edf1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs @@ -27,7 +27,7 @@ internal static IEdmExpression ToEdmExpression(this string text) /// The that can be built using . /// public static CallbackSupportedConfiguration HasCallbackSupported(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -36,7 +36,15 @@ public static CallbackSupportedConfiguration HasCallbackSupported(this /// The that can be built using . /// public static ChangeTrackingConfiguration HasChangeTracking(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); + + /// + /// configuration + /// + /// The that can be built using . + /// + public static ChangeTrackingConfiguration HasChangeTracking(this FunctionConfiguration operationSource) + => operationSource?.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -45,7 +53,7 @@ public static ChangeTrackingConfiguration HasChangeTracking(this Naviga /// The that can be built using . /// public static CountRestrictionsConfiguration HasCountRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -54,7 +62,7 @@ public static CountRestrictionsConfiguration HasCountRestrictions(this /// The that can be built using . /// public static NavigationRestrictionsConfiguration HasNavigationRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -63,7 +71,7 @@ public static NavigationRestrictionsConfiguration HasNavigationRestrictionsThe that can be built using . /// public static IndexableByKeyConfiguration HasIndexableByKey(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -72,7 +80,7 @@ public static IndexableByKeyConfiguration HasIndexableByKey(this Entity /// The that can be built using . /// public static TopSupportedConfiguration HasTopSupported(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -81,7 +89,7 @@ public static TopSupportedConfiguration HasTopSupported(this EntitySetC /// The that can be built using . /// public static SkipSupportedConfiguration HasSkipSupported(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -90,7 +98,7 @@ public static SkipSupportedConfiguration HasSkipSupported(this EntitySe /// The that can be built using . /// public static ComputeSupportedConfiguration HasComputeSupported(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -99,7 +107,7 @@ public static ComputeSupportedConfiguration HasComputeSupported(this En /// The that can be built using . /// public static SelectSupportConfiguration HasSelectSupport(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -108,7 +116,7 @@ public static SelectSupportConfiguration HasSelectSupport(this Navigati /// The that can be built using . /// public static FilterFunctionsConfiguration HasFilterFunctions(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -117,7 +125,7 @@ public static FilterFunctionsConfiguration HasFilterFunctions(this Enti /// The that can be built using . /// public static FilterRestrictionsConfiguration HasFilterRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -126,7 +134,7 @@ public static FilterRestrictionsConfiguration HasFilterRestrictions(thi /// The that can be built using . /// public static SortRestrictionsConfiguration HasSortRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -135,7 +143,7 @@ public static SortRestrictionsConfiguration HasSortRestrictions(this En /// The that can be built using . /// public static ExpandRestrictionsConfiguration HasExpandRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -144,7 +152,7 @@ public static ExpandRestrictionsConfiguration HasExpandRestrictions(thi /// The that can be built using . /// public static SearchRestrictionsConfiguration HasSearchRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -153,7 +161,7 @@ public static SearchRestrictionsConfiguration HasSearchRestrictions(thi /// The that can be built using . /// public static InsertRestrictionsConfiguration HasInsertRestrictions(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -162,7 +170,7 @@ public static InsertRestrictionsConfiguration HasInsertRestrictions(thi /// The that can be built using . /// public static DeepInsertSupportConfiguration HasDeepInsertSupport(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -171,7 +179,7 @@ public static DeepInsertSupportConfiguration HasDeepInsertSupport(this /// The that can be built using . /// public static UpdateRestrictionsConfiguration HasUpdateRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -180,7 +188,7 @@ public static UpdateRestrictionsConfiguration HasUpdateRestrictions(thi /// The that can be built using . /// public static DeepUpdateSupportConfiguration HasDeepUpdateSupport(this EntitySetConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -189,7 +197,7 @@ public static DeepUpdateSupportConfiguration HasDeepUpdateSupport(this /// The that can be built using . /// public static DeleteRestrictionsConfiguration HasDeleteRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -198,7 +206,23 @@ public static DeleteRestrictionsConfiguration HasDeleteRestrictions(thi /// The that can be built using . /// public static CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); + + /// + /// configuration + /// + /// The that can be built using . + /// + public static OperationRestrictionsConfiguration HasOperationRestrictions(this OperationConfiguration operationSource) + => operationSource?.VocabularyTermConfigurations.GetOrCreateConfiguration(); + + /// + /// configuration + /// + /// The that can be built using . + /// + public static ModificationQueryOptionsConfiguration HasModificationQueryOptions(this ActionConfiguration operationSource) + => operationSource?.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// /// configuration @@ -207,31 +231,52 @@ public static CollectionPropertyRestrictionsConfiguration HasCollectionPropertyR /// The that can be built using . /// public static ReadRestrictionsConfiguration HasReadRestrictions(this NavigationSourceConfiguration navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration(); /// - /// Apply all builders as configured + /// Add vocabulary annotations to a model target. /// - public static void SetVocabularyConfigurationAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration navigationConfiguration) + /// to add annotations to + /// to annotate + /// containing the collection of annotation configurations + public static void SetVocabularyConfigurationAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration navigationSourceConfiguration) + => model.SetVocabularyConfigurationAnnotations(target as IEdmVocabularyAnnotatable, navigationSourceConfiguration?.VocabularyTermConfigurations.Values); + + /// + /// Add vocabulary annotations to a model target. + /// + /// to add annotations to + /// to annotate + /// containing the collection of annotation configurations + public static void SetVocabularyConfigurationAnnotations(this EdmModel model, EdmOperation target, OperationConfiguration operationConfiguration) + => model.SetVocabularyConfigurationAnnotations(target as IEdmVocabularyAnnotatable, operationConfiguration?.VocabularyTermConfigurations.Values); + + /// + /// Add vocabulary annotations to a model target. + /// + /// to add annotations to + /// to annotate + /// Collection of annotation configurations + public static void SetVocabularyConfigurationAnnotations(this EdmModel model, IEdmVocabularyAnnotatable target, IEnumerable configurations) { _ = model ?? throw Error.ArgumentNull(nameof(model)); - if (target == null || navigationConfiguration == null) + if (target == null || configurations == null) { return; } - foreach (var configuration in navigationConfiguration.VocabularyTermConfigurations.Values) - { - configuration.SetVocabularyAnnotations(model, (IEdmVocabularyAnnotatable)target); - } + foreach (var configuration in configurations) + { + configuration.SetVocabularyAnnotations(model, target); + } } - private static TConfiguration GetVocabularyConfiguration(this NavigationSourceConfiguration navigationSource) where TConfiguration : VocabularyTermConfiguration, new() where TEntity : class + private static TConfiguration GetOrCreateConfiguration(this Dictionary vocabularyConfigurations) + where TConfiguration : VocabularyTermConfiguration, new() { - var vocabularyConfigurations = navigationSource.Configuration.VocabularyTermConfigurations; if (vocabularyConfigurations.TryGetValue(typeof(TConfiguration), out var configuration)) { - return configuration as TConfiguration; + return (TConfiguration)configuration; } configuration = new TConfiguration(); diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt index 5a338cd..cd76f18 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt @@ -49,23 +49,23 @@ namespace Microsoft.OData.ModelBuilder <# foreach (var term in model.SchemaElements.OfType()) { + var targets = term.AppliesTo.Split(' ').ToHashSet(); var sourceConfig = default(string); - if (term.AppliesTo.Contains("Singleton") && term.AppliesTo.Contains("EntitySet")) + if (targets.IsSupersetOf(new[]{ "Singleton", "EntitySet" })) { sourceConfig = "NavigationSourceConfiguration"; } - else if (term.AppliesTo.Contains("Singleton")) + else if (targets.Contains("Singleton")) { sourceConfig = "SingletonConfiguration"; } - else if (term.AppliesTo.Contains("EntitySet")) + else if (targets.Contains("EntitySet")) { sourceConfig = "EntitySetConfiguration"; } - else + + if (!string.IsNullOrEmpty(sourceConfig)) { - continue; - } #> /// /// configuration @@ -74,34 +74,87 @@ namespace Microsoft.OData.ModelBuilder /// The that can be built using . /// public static <#= term.Name #>Configuration Has<#= term.Name #>(this <#= sourceConfig #> navigationSource) where TEntity : class - => navigationSource?.GetVocabularyConfiguration<<#= term.Name #>Configuration, TEntity>(); + => navigationSource?.Configuration.VocabularyTermConfigurations.GetOrCreateConfiguration<<#= term.Name #>Configuration>(); <# + } + + sourceConfig = default(string); + var actions = new[] { "Action", "ActionImport" }; + var functions = new[] { "Function", "FunctionImport" }; + if (targets.Intersect(actions).Any() && targets.Intersect(functions).Any()) + { + sourceConfig = "OperationConfiguration"; + } + else if (targets.Intersect(actions).Any()) + { + sourceConfig = "ActionConfiguration"; + } + else if (targets.Intersect(functions).Any()) + { + sourceConfig = "FunctionConfiguration"; + } + + if (!string.IsNullOrEmpty(sourceConfig)) + { +#> + /// + /// configuration + /// + /// The that can be built using . + /// + public static <#= term.Name #>Configuration Has<#= term.Name #>(this <#= sourceConfig #> operationSource) + => operationSource?.VocabularyTermConfigurations.GetOrCreateConfiguration<<#= term.Name #>Configuration>(); + +<# + } + } #> /// - /// Apply all builders as configured + /// Add vocabulary annotations to a model target. /// - public static void SetVocabularyConfigurationAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration navigationConfiguration) + /// to add annotations to + /// to annotate + /// containing the collection of annotation configurations + public static void SetVocabularyConfigurationAnnotations(this EdmModel model, EdmNavigationSource target, NavigationSourceConfiguration navigationSourceConfiguration) + => model.SetVocabularyConfigurationAnnotations(target as IEdmVocabularyAnnotatable, navigationSourceConfiguration?.VocabularyTermConfigurations.Values); + + /// + /// Add vocabulary annotations to a model target. + /// + /// to add annotations to + /// to annotate + /// containing the collection of annotation configurations + public static void SetVocabularyConfigurationAnnotations(this EdmModel model, EdmOperation target, OperationConfiguration operationConfiguration) + => model.SetVocabularyConfigurationAnnotations(target as IEdmVocabularyAnnotatable, operationConfiguration?.VocabularyTermConfigurations.Values); + + /// + /// Add vocabulary annotations to a model target. + /// + /// to add annotations to + /// to annotate + /// Collection of annotation configurations + public static void SetVocabularyConfigurationAnnotations(this EdmModel model, IEdmVocabularyAnnotatable target, IEnumerable configurations) { _ = model ?? throw Error.ArgumentNull(nameof(model)); - if (target == null || navigationConfiguration == null) + if (target == null || configurations == null) { return; } - foreach (var configuration in navigationConfiguration.VocabularyConfigurations.Values) - { - configuration.SetVocabularyAnnotations(model, (IEdmVocabularyAnnotatable)target); - } + foreach (var configuration in configurations) + { + configuration.SetVocabularyAnnotations(model, target); + } } - private static TConfiguration GetVocabularyConfiguration(this NavigationSourceConfiguration navigationSource) where TConfiguration : VocabularyTermConfiguration, new() where TEntity : class + private static TConfiguration GetOrCreateConfiguration(this Dictionary vocabularyConfigurations) + where TConfiguration : VocabularyTermConfiguration, new() { - var vocabularyConfigurations = navigationSource.Configuration.VocabularyConfigurations; if (vocabularyConfigurations.TryGetValue(typeof(TConfiguration), out var configuration)) { - return configuration as TConfiguration; + return (TConfiguration)configuration; } configuration = new TConfiguration(); @@ -406,6 +459,12 @@ using Microsoft.OData.Edm.Vocabularies; return; } } + + var methodPrefix = "Has"; + if (clrType == "bool") + { + methodPrefix = "Is"; + } #> /// @@ -413,7 +472,7 @@ using Microsoft.OData.Edm.Vocabularies; /// /// The value to set /// - public <#=returnType #> Has<#= name #>(<#= clrType #> <#= camelName #>) + public <#=returnType #> <#= methodPrefix #><#= name #>(<#= clrType #> <#= camelName #>) { _<#= camelName #> = <#= camelName #>; return this; diff --git a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl index 694f14f..8a0aaf6 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl +++ b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl @@ -61,7 +61,7 @@ public abstract class Microsoft.OData.ModelBuilder.NavigationSourceConfiguration System.Type ClrType { public get; } Microsoft.OData.ModelBuilder.EntityTypeConfiguration EntityType { public virtual get; } string Name { public get; } - System.Collections.Generic.Dictionary`2[[System.Type],[Microsoft.OData.ModelBuilder.VocabularyConfiguration]] VocabularyConfigurations { public get; } + System.Collections.Generic.Dictionary`2[[System.Type],[Microsoft.OData.ModelBuilder.VocabularyTermConfiguration]] VocabularyTermConfigurations { public get; } public virtual Microsoft.OData.ModelBuilder.NavigationPropertyBindingConfiguration AddBinding (Microsoft.OData.ModelBuilder.NavigationPropertyConfiguration navigationConfiguration, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration targetNavigationSource) public virtual Microsoft.OData.ModelBuilder.NavigationPropertyBindingConfiguration AddBinding (Microsoft.OData.ModelBuilder.NavigationPropertyConfiguration navigationConfiguration, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration targetNavigationSource, System.Collections.Generic.IList`1[[System.Reflection.MemberInfo]] bindingPath) @@ -115,6 +115,7 @@ public abstract class Microsoft.OData.ModelBuilder.OperationConfiguration { bool ReturnNullable { public get; public set; } Microsoft.OData.ModelBuilder.IEdmTypeConfiguration ReturnType { public get; public set; } string Title { public get; public set; } + System.Collections.Generic.Dictionary`2[[System.Type],[Microsoft.OData.ModelBuilder.VocabularyTermConfiguration]] VocabularyTermConfigurations { public get; } public Microsoft.OData.ModelBuilder.ParameterConfiguration AddParameter (string name, Microsoft.OData.ModelBuilder.IEdmTypeConfiguration parameterType) public Microsoft.OData.ModelBuilder.ParameterConfiguration CollectionEntityParameter (string name) @@ -257,8 +258,8 @@ public abstract class Microsoft.OData.ModelBuilder.StructuralTypeConfiguration`1 public Microsoft.OData.ModelBuilder.PrimitivePropertyConfiguration Property (Expression`1 propertyExpression) } -public abstract class Microsoft.OData.ModelBuilder.VocabularyConfiguration : IRecord { - public VocabularyConfiguration (string termName) +public abstract class Microsoft.OData.ModelBuilder.VocabularyTermConfiguration : IRecord { + public VocabularyTermConfiguration (string termName) public virtual void SetVocabularyAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotatable target) public abstract Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -312,7 +313,7 @@ public sealed class Microsoft.OData.ModelBuilder.PrimitivePropertyConfigurationE [ ExtensionAttribute(), ] -public sealed class Microsoft.OData.ModelBuilder.VocabularyConfigurationExtensions { +public sealed class Microsoft.OData.ModelBuilder.VocabularyTermConfigurationExtensions { [ ExtensionAttribute(), ] @@ -323,6 +324,11 @@ public sealed class Microsoft.OData.ModelBuilder.VocabularyConfigurationExtensio ] public static Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration HasChangeTracking (NavigationSourceConfiguration`1 navigationSource) + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration HasChangeTracking (Microsoft.OData.ModelBuilder.FunctionConfiguration operationSource) + [ ExtensionAttribute(), ] @@ -378,11 +384,21 @@ public sealed class Microsoft.OData.ModelBuilder.VocabularyConfigurationExtensio ] public static Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasInsertRestrictions (EntitySetConfiguration`1 navigationSource) + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasModificationQueryOptions (Microsoft.OData.ModelBuilder.ActionConfiguration operationSource) + [ ExtensionAttribute(), ] public static Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasNavigationRestrictions (NavigationSourceConfiguration`1 navigationSource) + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasOperationRestrictions (Microsoft.OData.ModelBuilder.OperationConfiguration operationSource) + [ ExtensionAttribute(), ] @@ -421,7 +437,17 @@ public sealed class Microsoft.OData.ModelBuilder.VocabularyConfigurationExtensio [ ExtensionAttribute(), ] - public static void SetVocabularyConfigurationAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.EdmNavigationSource target, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration navigationConfiguration) + public static void SetVocabularyConfigurationAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.EdmNavigationSource target, Microsoft.OData.ModelBuilder.NavigationSourceConfiguration navigationSourceConfiguration) + + [ + ExtensionAttribute(), + ] + public static void SetVocabularyConfigurationAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.EdmOperation target, Microsoft.OData.ModelBuilder.OperationConfiguration operationConfiguration) + + [ + ExtensionAttribute(), + ] + public static void SetVocabularyConfigurationAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotatable target, System.Collections.Generic.IEnumerable`1[[Microsoft.OData.ModelBuilder.VocabularyTermConfiguration]] configurations) } public class Microsoft.OData.ModelBuilder.ActionConfiguration : Microsoft.OData.ModelBuilder.OperationConfiguration { @@ -1075,51 +1101,51 @@ public enum Microsoft.OData.ModelBuilder.Capabilities.V1.SearchExpressions : int phrase = 4 } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public AcceptableEncodingsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration AddAcceptableEncodings (string[] acceptableEncodings) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public AnnotationValuesInQuerySupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration HasAnnotationValuesInQuerySupported (bool annotationValuesInQuerySupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration IsAnnotationValuesInQuerySupported (bool annotationValuesInQuerySupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public AsynchronousRequestsSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration HasAsynchronousRequestsSupported (bool asynchronousRequestsSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration IsAsynchronousRequestsSupported (bool asynchronousRequestsSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public BatchContinueOnErrorSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration HasBatchContinueOnErrorSupported (bool batchContinueOnErrorSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration IsBatchContinueOnErrorSupported (bool batchContinueOnErrorSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public BatchSupportConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration AddSupportedFormats (string[] supportedFormats) - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasContinueOnErrorSupported (bool continueOnErrorSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasEtagReferencesSupported (bool etagReferencesSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasReferencesAcrossChangeSetsSupported (bool referencesAcrossChangeSetsSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasReferencesInRequestBodiesSupported (bool referencesInRequestBodiesSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasRequestDependencyConditionsSupported (bool requestDependencyConditionsSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasSupported (bool supported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsContinueOnErrorSupported (bool continueOnErrorSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsEtagReferencesSupported (bool etagReferencesSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsReferencesAcrossChangeSetsSupported (bool referencesAcrossChangeSetsSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsReferencesInRequestBodiesSupported (bool referencesInRequestBodiesSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsRequestDependencyConditionsSupported (bool requestDependencyConditionsSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public BatchSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration HasBatchSupported (bool batchSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration IsBatchSupported (bool batchSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1132,23 +1158,23 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfig public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CallbackSupportedConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration AddCallbackProtocols (Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration[] callbackProtocols) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ChangeTrackingConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration AddExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] expandableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration AddFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] filterableProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration HasSupported (bool supported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration IsSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CollectionPropertyRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) @@ -1160,49 +1186,49 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRest public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration AddFilterFunctions (string[] filterFunctions) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasCollectionProperty (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression collectionProperty) - public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasDeletable (bool deletable) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration filterRestrictions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasInsertable (bool insertable) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration searchRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration selectSupport) - public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSkipSupported (bool skipSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSortRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration sortRestrictions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasTopSupported (bool topSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasUpdatable (bool updatable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration IsDeletable (bool deletable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration IsInsertable (bool insertable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration IsSkipSupported (bool skipSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration IsTopSupported (bool topSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration IsUpdatable (bool updatable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ComputeSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration HasComputeSupported (bool computeSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration IsComputeSupported (bool computeSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ConformanceLevelConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelConfiguration HasConformanceLevel (Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelType conformanceLevel) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CountRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration AddNonCountableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonCountableNavigationProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration AddNonCountableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonCountableProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration HasCountable (bool countable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration IsCountable (bool countable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CrossJoinSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration HasCrossJoinSupported (bool crossJoinSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration IsCrossJoinSupported (bool crossJoinSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CustomHeadersConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) @@ -1216,56 +1242,56 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfigu public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasDocumentationURL (string documentationURL) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasName (string name) - public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasRequired (bool required) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration IsRequired (bool required) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CustomQueryOptionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public DeepInsertSupportConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration HasContentIDSupported (bool contentIDSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration HasSupported (bool supported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration IsContentIDSupported (bool contentIDSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration IsSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public DeepUpdateSupportConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration HasContentIDSupported (bool contentIDSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration HasSupported (bool supported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration IsContentIDSupported (bool contentIDSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration IsSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public DeleteRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddNonDeletableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonDeletableNavigationProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasDeletable (bool deletable) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasDescription (string description) - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasFilterSegmentSupported (bool filterSegmentSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasMaxLevels (int maxLevels) - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasTypecastSegmentSupported (bool typecastSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration IsDeletable (bool deletable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration IsFilterSegmentSupported (bool filterSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration IsTypecastSegmentSupported (bool typecastSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ExpandRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration AddNonExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonExpandableProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasExpandable (bool expandable) public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasMaxLevels (int maxLevels) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasStreamsExpandable (bool streamsExpandable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration IsExpandable (bool expandable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration IsStreamsExpandable (bool streamsExpandable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1277,33 +1303,33 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestri public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public FilterFunctionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration AddFilterFunctions (string[] filterFunctions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public FilterRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration AddFilterExpressionRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration AddNonFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonFilterableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration AddRequiredProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] requiredProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasFilterable (bool filterable) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasMaxLevels (int maxLevels) - public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasRequiresFilter (bool requiresFilter) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration IsFilterable (bool filterable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration IsRequiresFilter (bool requiresFilter) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public IndexableByKeyConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration HasIndexableByKey (bool indexableByKey) + public Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration IsIndexableByKey (bool indexableByKey) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public InsertRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) @@ -1312,44 +1338,44 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConf public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddNonInsertableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonInsertableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasDescription (string description) - public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasInsertable (bool insertable) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasMaxLevels (int maxLevels) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration queryOptions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasTypecastSegmentSupported (bool typecastSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration IsInsertable (bool insertable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration IsTypecastSegmentSupported (bool typecastSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public IsolationSupportedConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedConfiguration HasIsolationSupported (Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationLevel isolationSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public KeyAsSegmentSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration HasKeyAsSegmentSupported (bool keyAsSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration IsKeyAsSegmentSupported (bool keyAsSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public MediaLocationUpdateSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration HasMediaLocationUpdateSupported (bool mediaLocationUpdateSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration IsMediaLocationUpdateSupported (bool mediaLocationUpdateSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ModificationQueryOptionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasComputeSupported (bool computeSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasExpandSupported (bool expandSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasFilterSupported (bool filterSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasSearchSupported (bool searchSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasSelectSupported (bool selectSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration HasSortSupported (bool sortSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration IsComputeSupported (bool computeSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration IsExpandSupported (bool expandSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration IsFilterSupported (bool filterSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration IsSearchSupported (bool searchSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration IsSelectSupported (bool selectSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration IsSortSupported (bool sortSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1361,22 +1387,22 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRest public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration deepUpdateSupport) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeleteRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration deleteRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasFilterRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration filterRestrictions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasIndexableByKey (bool indexableByKey) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasInsertRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration insertRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasNavigability (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationType navigability) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasNavigationProperty (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression navigationProperty) - public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasOptimisticConcurrencyControl (bool optimisticConcurrencyControl) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasReadRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration readRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSearchRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration searchRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSelectSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration selectSupport) - public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSkipSupported (bool skipSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSortRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration sortRestrictions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasTopSupported (bool topSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasUpdateRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration updateRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration IsIndexableByKey (bool indexableByKey) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration IsOptimisticConcurrencyControl (bool optimisticConcurrencyControl) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration IsSkipSupported (bool skipSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration IsTopSupported (bool topSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public NavigationRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration AddRestrictedProperties (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration[] restrictedProperties) @@ -1384,13 +1410,13 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictions public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public OperationRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasFilterSegmentSupported (bool filterSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration IsFilterSegmentSupported (bool filterSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1402,10 +1428,10 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfigur public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public QuerySegmentSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration HasQuerySegmentSupported (bool querySegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration IsQuerySegmentSupported (bool querySegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1417,11 +1443,11 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsT public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasLongDescription (string longDescription) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasReadable (bool readable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration IsReadable (bool readable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ReadRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) @@ -1429,8 +1455,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfig public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasLongDescription (string longDescription) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasReadable (bool readable) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasReadByKeyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration readByKeyRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration IsReadable (bool readable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1442,84 +1468,84 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SearchRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration HasSearchable (bool searchable) public Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration HasUnsupportedExpressions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchExpressions unsupportedExpressions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration IsSearchable (bool searchable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SelectSupportConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasComputeSupported (bool computeSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasCountable (bool countable) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasExpandable (bool expandable) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasFilterable (bool filterable) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasInstanceAnnotationsSupported (bool instanceAnnotationsSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasSearchable (bool searchable) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasSkipSupported (bool skipSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasSortable (bool sortable) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasSupported (bool supported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration HasTopSupported (bool topSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsComputeSupported (bool computeSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsCountable (bool countable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsExpandable (bool expandable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsFilterable (bool filterable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsInstanceAnnotationsSupported (bool instanceAnnotationsSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsSearchable (bool searchable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsSkipSupported (bool skipSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsSortable (bool sortable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsSupported (bool supported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsTopSupported (bool topSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SkipSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration HasSkipSupported (bool skipSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration IsSkipSupported (bool skipSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SortRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration AddAscendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] ascendingOnlyProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration AddDescendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] descendingOnlyProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration AddNonSortableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonSortableProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration HasSortable (bool sortable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration IsSortable (bool sortable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SupportedFormatsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration AddSupportedFormats (string[] supportedFormats) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SupportedMetadataFormatsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration AddSupportedMetadataFormats (string[] supportedMetadataFormats) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public TopSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration HasTopSupported (bool topSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration IsTopSupported (bool topSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } -public class Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyConfiguration, IRecord { +public class Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public UpdateRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddNonUpdatableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonUpdatableNavigationProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasDeltaUpdateSupported (bool deltaUpdateSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasDescription (string description) - public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasFilterSegmentSupported (bool filterSegmentSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasMaxLevels (int maxLevels) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration queryOptions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasTypecastSegmentSupported (bool typecastSegmentSupported) - public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasUpdatable (bool updatable) - public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasUpsertable (bool upsertable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsDeltaUpdateSupported (bool deltaUpdateSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsFilterSegmentSupported (bool filterSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsTypecastSegmentSupported (bool typecastSegmentSupported) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsUpdatable (bool updatable) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsUpsertable (bool upsertable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs similarity index 90% rename from test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsTests.cs rename to test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs index 6e7edf5..bc8be2a 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsTests.cs +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs @@ -11,7 +11,7 @@ namespace Microsoft.OData.ModelBuilder.Tests.Vocabularies.Capabilities { - public class DeleteRestrictionsTests + public class DeleteRestrictionsConfigurationTests { private const string Description = "A brief description"; private const string LongDescription = "A very long description"; @@ -25,7 +25,7 @@ public void DeleteRestrictionsChainsToSameInstance() var entitySetConfiguration = modelBuilder.EntitySet("Customers"); var builder1 = entitySetConfiguration.HasDeleteRestrictions(); - var builder2 = builder1.HasDeletable(true); + var builder2 = builder1.IsDeletable(true); Assert.Same(builder1, builder2); } @@ -38,7 +38,7 @@ public void AnnotationsAreAddedToModelOnBuild() var deleteRestrictionsBuilder = entitySetConfiguration .HasDeleteRestrictions() - .HasDeletable(false) + .IsDeletable(false) .HasDescription(Description); var model = modelBuilder.GetServiceModel(); @@ -52,13 +52,8 @@ public void AnnotationsAreAddedToModelOnBuild() var annotationValue = annotation.Value as EdmRecordExpression; Assert.NotNull(annotationValue); - var descriptionProperty = annotationValue.FindProperty("Description"); - Assert.NotNull(descriptionProperty); - - var stringValue = descriptionProperty.Value as IEdmStringValue; - Assert.NotNull(stringValue); - - Assert.Equal(Description, stringValue.Value); + var descriptionValue = GetRecordValue(annotationValue, "Description"); + Assert.Equal(Description, descriptionValue.Value); } [Fact] @@ -70,7 +65,7 @@ public void PermissionsCanBeAddedToEntitySet() var deleteRestrictionsBuilder = modelBuilder .EntitySet("Customers") .HasDeleteRestrictions() - .HasDeletable(false) + .IsDeletable(false) .HasDescription(Description) .AddPermissions( new PermissionTypeConfiguration() diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs new file mode 100644 index 0000000..797cc7e --- /dev/null +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs @@ -0,0 +1,112 @@ +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; +using Microsoft.OData.ModelBuilder.Capabilities.V1; +using Microsoft.OData.ModelBuilder.Tests.Commons; +using Microsoft.OData.ModelBuilder.Tests.TestModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Xunit; + +namespace Microsoft.OData.ModelBuilder.Tests.Vocabularies.Capabilities +{ + public class OperationRestrictionsConfigurationTests + { + private const string Description = "A brief description"; + private const string LongDescription = "A very long description"; + private const string SchemeName = "Delegated"; + private const string CustomerReadWriteAllScope = "Customers.ReadWrite.All"; + + [Fact] + public void OperationRestrictionsChainsToSameInstance() + { + // Arrange + var modelBuilder = new ODataModelBuilder(); + var actionConfiguration = modelBuilder.Action("MyAction"); + + var builder1 = actionConfiguration.HasOperationRestrictions(); + var builder2 = builder1.IsFilterSegmentSupported(false); + + Assert.Same(builder1, builder2); + } + + [Fact] + public void AnnotationsAreAddedToModelOnBuild() + { + var modelBuilder = new ODataModelBuilder(); + var actionConfiguration = modelBuilder.Action("MyAction"); + + var operationRestrictionsBuilder = actionConfiguration + .HasOperationRestrictions() + .IsFilterSegmentSupported(true); + + var model = modelBuilder.GetServiceModel(); + var action = model.SchemaElements.OfType().Single(); + + var term = model.FindTerm("Org.OData.Capabilities.V1.OperationRestrictions"); + var annotation = action.VocabularyAnnotations(model).FirstOrDefault(a => a.Term == term); + Assert.NotNull(annotation); + + var annotationValue = annotation.Value as EdmRecordExpression; + Assert.NotNull(annotationValue); + + var filterSegmentSupportedValue = GetRecordValue(annotationValue, "FilterSegmentSupported"); + Assert.True(filterSegmentSupportedValue.Value); + } + + [Fact] + public void PermissionsCanBeAddedToOperation() + { + var modelBuilder = new ODataModelBuilder(); + var actionConfiguration = modelBuilder.Action("MyAction"); + + var operationRestrictionsBuilder = actionConfiguration + .HasOperationRestrictions() + .IsFilterSegmentSupported(true) + .AddPermissions( + new PermissionTypeConfiguration() + .HasSchemeName(SchemeName) + .AddScopes( + new ScopeTypeConfiguration() + .HasScope(CustomerReadWriteAllScope) + .HasRestrictedProperties("*"))); + + var model = modelBuilder.GetServiceModel(); + var action = model.SchemaElements.OfType().Single(); + + var term = model.FindTerm("Org.OData.Capabilities.V1.OperationRestrictions"); + var annotation = action.VocabularyAnnotations(model).FirstOrDefault(a => a.Term == term); + Assert.NotNull(annotation); + + var annotationValue = annotation.Value as EdmRecordExpression; + Assert.NotNull(annotationValue); + + var permissionsCollection = GetRecordValue(annotationValue, "Permissions"); + Assert.NotNull(permissionsCollection); + + var singlePermission = Assert.Single(permissionsCollection.Elements) as EdmRecordExpression; + Assert.NotNull(singlePermission); + + var schemeNameValue = GetRecordValue(singlePermission, "SchemeName"); + Assert.NotNull(schemeNameValue); + + Assert.Equal(SchemeName, schemeNameValue.Value); + + var scopesProperty = GetRecordValue(singlePermission, "Scopes"); + Assert.NotNull(scopesProperty); + + var singleScope = Assert.Single(scopesProperty.Elements) as EdmRecordExpression; + Assert.NotNull(singleScope); + + var scopeValue = GetRecordValue(singleScope, "Scope"); + Assert.Equal(CustomerReadWriteAllScope, scopeValue.Value); + + var restrictedPropertiesValue = GetRecordValue(singleScope, "RestrictedProperties"); + Assert.Equal("*", restrictedPropertiesValue.Value); + } + + private T GetRecordValue(EdmRecordExpression record, string name) where T : class + => record.FindProperty(name)?.Value as T; + } +} From 156a2f6e72a5a0ca566fc88032ca7daa6106d647 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Thu, 18 Jun 2020 22:22:51 +0300 Subject: [PATCH 14/29] Fixes. --- .../Containers/NavigationSourceConfiguration.cs | 2 +- .../Helpers/EdmModelHelperMethods.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs index c613ddc..9952f95 100644 --- a/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Containers/NavigationSourceConfiguration.cs @@ -17,11 +17,11 @@ public abstract class NavigationSourceConfiguration { private string _url; private readonly ODataModelBuilder _modelBuilder; + private readonly Dictionary> _navigationPropertyBindings = new Dictionary>(); - /// /// Initializes a new instance of the class. /// The default constructor is intended for use by unit testing only. diff --git a/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs b/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs index 4db82bc..512faaf 100644 --- a/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs +++ b/src/Microsoft.OData.ModelBuilder/Helpers/EdmModelHelperMethods.cs @@ -138,7 +138,7 @@ private static IDictionary GetNavigationSourceMap(t private static void AddNavigationBindings(EdmTypeMap edmMap, NavigationSourceConfiguration navigationSourceConfiguration, EdmNavigationSource navigationSource, - // NavigationSourceLinkBuilderAnnotation linkBuilder, + // NavigationSourceLinkBuilderAnnotation linkBuilder, Dictionary edmNavigationSourceMap) { foreach (var binding in navigationSourceConfiguration.Bindings) From 9a75814aed6af394655b0def40ed961a2d1b1d76 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Mon, 22 Jun 2020 12:56:10 +0300 Subject: [PATCH 15/29] Prefer UnionWiith when updating HashSet with Collection. --- .../V1/AcceptableEncodingsConfiguration.cs | 6 +--- .../V1/BatchSupportConfiguration.cs | 6 +--- .../V1/CallbackSupportedConfiguration.cs | 6 +--- .../V1/ChangeTrackingConfiguration.cs | 12 ++------ ...ectionPropertyRestrictionsConfiguration.cs | 6 +--- ...onPropertyRestrictionsTypeConfiguration.cs | 6 +--- .../V1/CountRestrictionsConfiguration.cs | 12 ++------ .../V1/CustomHeadersConfiguration.cs | 6 +--- .../V1/CustomParameterConfiguration.cs | 6 +--- .../V1/CustomQueryOptionsConfiguration.cs | 6 +--- .../V1/DeleteRestrictionsConfiguration.cs | 24 +++------------ .../V1/ExpandRestrictionsConfiguration.cs | 6 +--- .../V1/FilterFunctionsConfiguration.cs | 6 +--- .../V1/FilterRestrictionsConfiguration.cs | 18 ++--------- .../V1/InsertRestrictionsConfiguration.cs | 30 ++++--------------- ...igationPropertyRestrictionConfiguration.cs | 6 +--- .../V1/NavigationRestrictionsConfiguration.cs | 6 +--- .../V1/OperationRestrictionsConfiguration.cs | 18 ++--------- .../V1/PermissionTypeConfiguration.cs | 6 +--- .../ReadByKeyRestrictionsTypeConfiguration.cs | 18 ++--------- .../V1/ReadRestrictionsConfiguration.cs | 18 ++--------- .../V1/SortRestrictionsConfiguration.cs | 18 ++--------- .../V1/SupportedFormatsConfiguration.cs | 6 +--- .../SupportedMetadataFormatsConfiguration.cs | 6 +--- .../V1/UpdateRestrictionsConfiguration.cs | 24 +++------------ .../VocabularyTermConfigurationExtensions.tt | 6 +--- 26 files changed, 48 insertions(+), 240 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs index 115f89f..275cfa1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs @@ -32,11 +32,7 @@ public AcceptableEncodingsConfiguration() /// public AcceptableEncodingsConfiguration AddAcceptableEncodings(params string[] acceptableEncodings) { - foreach (var item in acceptableEncodings) - { - _ = _acceptableEncodings.Add(item); - } - + _acceptableEncodings.UnionWith(acceptableEncodings); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs index 561dbec..4d0a21c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs @@ -104,11 +104,7 @@ public BatchSupportConfiguration IsRequestDependencyConditionsSupported(bool req /// public BatchSupportConfiguration AddSupportedFormats(params string[] supportedFormats) { - foreach (var item in supportedFormats) - { - _ = _supportedFormats.Add(item); - } - + _supportedFormats.UnionWith(supportedFormats); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs index 2548d6c..ca16f29 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs @@ -32,11 +32,7 @@ public CallbackSupportedConfiguration() /// public CallbackSupportedConfiguration AddCallbackProtocols(params CallbackProtocolConfiguration[] callbackProtocols) { - foreach (var item in callbackProtocols) - { - _ = _callbackProtocols.Add(item); - } - + _callbackProtocols.UnionWith(callbackProtocols); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs index a07c662..f00754f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs @@ -46,11 +46,7 @@ public ChangeTrackingConfiguration IsSupported(bool supported) /// public ChangeTrackingConfiguration AddFilterableProperties(params EdmPropertyPathExpression[] filterableProperties) { - foreach (var item in filterableProperties) - { - _ = _filterableProperties.Add(item); - } - + _filterableProperties.UnionWith(filterableProperties); return this; } @@ -62,11 +58,7 @@ public ChangeTrackingConfiguration AddFilterableProperties(params EdmPropertyPat /// public ChangeTrackingConfiguration AddExpandableProperties(params EdmNavigationPropertyPathExpression[] expandableProperties) { - foreach (var item in expandableProperties) - { - _ = _expandableProperties.Add(item); - } - + _expandableProperties.UnionWith(expandableProperties); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs index 4c0ab5c..802fcdd 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -32,11 +32,7 @@ public CollectionPropertyRestrictionsConfiguration() /// public CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions(params CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) { - foreach (var item in collectionPropertyRestrictions) - { - _ = _collectionPropertyRestrictions.Add(item); - } - + _collectionPropertyRestrictions.UnionWith(collectionPropertyRestrictions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs index 4d14fc5..334d3b3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -53,11 +53,7 @@ public CollectionPropertyRestrictionsTypeConfiguration HasCollectionProperty(Edm /// public CollectionPropertyRestrictionsTypeConfiguration AddFilterFunctions(params string[] filterFunctions) { - foreach (var item in filterFunctions) - { - _ = _filterFunctions.Add(item); - } - + _filterFunctions.UnionWith(filterFunctions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs index 89b6743..536837e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs @@ -45,11 +45,7 @@ public CountRestrictionsConfiguration IsCountable(bool countable) /// public CountRestrictionsConfiguration AddNonCountableProperties(params EdmPropertyPathExpression[] nonCountableProperties) { - foreach (var item in nonCountableProperties) - { - _ = _nonCountableProperties.Add(item); - } - + _nonCountableProperties.UnionWith(nonCountableProperties); return this; } @@ -60,11 +56,7 @@ public CountRestrictionsConfiguration AddNonCountableProperties(params EdmProper /// public CountRestrictionsConfiguration AddNonCountableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonCountableNavigationProperties) { - foreach (var item in nonCountableNavigationProperties) - { - _ = _nonCountableNavigationProperties.Add(item); - } - + _nonCountableNavigationProperties.UnionWith(nonCountableNavigationProperties); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs index 4524b57..43fcd36 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs @@ -32,11 +32,7 @@ public CustomHeadersConfiguration() /// public CustomHeadersConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { - foreach (var item in customHeaders) - { - _ = _customHeaders.Add(item); - } - + _customHeaders.UnionWith(customHeaders); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs index e6578f1..0db6228 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs @@ -80,11 +80,7 @@ public CustomParameterConfiguration IsRequired(bool required) /// public CustomParameterConfiguration AddExampleValues(params Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration[] exampleValues) { - foreach (var item in exampleValues) - { - _ = _exampleValues.Add(item); - } - + _exampleValues.UnionWith(exampleValues); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs index bf93ec8..97350de 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -34,11 +34,7 @@ public CustomQueryOptionsConfiguration() /// public CustomQueryOptionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { - foreach (var item in customQueryOptions) - { - _ = _customQueryOptions.Add(item); - } - + _customQueryOptions.UnionWith(customQueryOptions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs index d2880ba..d4daf32 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -52,11 +52,7 @@ public DeleteRestrictionsConfiguration IsDeletable(bool deletable) /// public DeleteRestrictionsConfiguration AddNonDeletableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonDeletableNavigationProperties) { - foreach (var item in nonDeletableNavigationProperties) - { - _ = _nonDeletableNavigationProperties.Add(item); - } - + _nonDeletableNavigationProperties.UnionWith(nonDeletableNavigationProperties); return this; } @@ -100,11 +96,7 @@ public DeleteRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS /// public DeleteRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) { - foreach (var item in permissions) - { - _ = _permissions.Add(item); - } - + _permissions.UnionWith(permissions); return this; } @@ -115,11 +107,7 @@ public DeleteRestrictionsConfiguration AddPermissions(params PermissionTypeConfi /// public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { - foreach (var item in customHeaders) - { - _ = _customHeaders.Add(item); - } - + _customHeaders.UnionWith(customHeaders); return this; } @@ -130,11 +118,7 @@ public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomParameterCo /// public DeleteRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { - foreach (var item in customQueryOptions) - { - _ = _customQueryOptions.Add(item); - } - + _customQueryOptions.UnionWith(customQueryOptions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs index 3025263..82e8fc7 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs @@ -57,11 +57,7 @@ public ExpandRestrictionsConfiguration IsStreamsExpandable(bool streamsExpandabl /// public ExpandRestrictionsConfiguration AddNonExpandableProperties(params EdmNavigationPropertyPathExpression[] nonExpandableProperties) { - foreach (var item in nonExpandableProperties) - { - _ = _nonExpandableProperties.Add(item); - } - + _nonExpandableProperties.UnionWith(nonExpandableProperties); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs index 6001d53..cda5b0e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs @@ -34,11 +34,7 @@ public FilterFunctionsConfiguration() /// public FilterFunctionsConfiguration AddFilterFunctions(params string[] filterFunctions) { - foreach (var item in filterFunctions) - { - _ = _filterFunctions.Add(item); - } - + _filterFunctions.UnionWith(filterFunctions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs index 7b5199b..8e39240 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs @@ -59,11 +59,7 @@ public FilterRestrictionsConfiguration IsRequiresFilter(bool requiresFilter) /// public FilterRestrictionsConfiguration AddRequiredProperties(params EdmPropertyPathExpression[] requiredProperties) { - foreach (var item in requiredProperties) - { - _ = _requiredProperties.Add(item); - } - + _requiredProperties.UnionWith(requiredProperties); return this; } @@ -74,11 +70,7 @@ public FilterRestrictionsConfiguration AddRequiredProperties(params EdmPropertyP /// public FilterRestrictionsConfiguration AddNonFilterableProperties(params EdmPropertyPathExpression[] nonFilterableProperties) { - foreach (var item in nonFilterableProperties) - { - _ = _nonFilterableProperties.Add(item); - } - + _nonFilterableProperties.UnionWith(nonFilterableProperties); return this; } @@ -89,11 +81,7 @@ public FilterRestrictionsConfiguration AddNonFilterableProperties(params EdmProp /// public FilterRestrictionsConfiguration AddFilterExpressionRestrictions(params FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) { - foreach (var item in filterExpressionRestrictions) - { - _ = _filterExpressionRestrictions.Add(item); - } - + _filterExpressionRestrictions.UnionWith(filterExpressionRestrictions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs index cbd1c7d..301f68f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -53,11 +53,7 @@ public InsertRestrictionsConfiguration IsInsertable(bool insertable) /// public InsertRestrictionsConfiguration AddNonInsertableProperties(params EdmPropertyPathExpression[] nonInsertableProperties) { - foreach (var item in nonInsertableProperties) - { - _ = _nonInsertableProperties.Add(item); - } - + _nonInsertableProperties.UnionWith(nonInsertableProperties); return this; } @@ -68,11 +64,7 @@ public InsertRestrictionsConfiguration AddNonInsertableProperties(params EdmProp /// public InsertRestrictionsConfiguration AddNonInsertableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonInsertableNavigationProperties) { - foreach (var item in nonInsertableNavigationProperties) - { - _ = _nonInsertableNavigationProperties.Add(item); - } - + _nonInsertableNavigationProperties.UnionWith(nonInsertableNavigationProperties); return this; } @@ -105,11 +97,7 @@ public InsertRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS /// public InsertRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) { - foreach (var item in permissions) - { - _ = _permissions.Add(item); - } - + _permissions.UnionWith(permissions); return this; } @@ -131,11 +119,7 @@ public InsertRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// public InsertRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { - foreach (var item in customHeaders) - { - _ = _customHeaders.Add(item); - } - + _customHeaders.UnionWith(customHeaders); return this; } @@ -146,11 +130,7 @@ public InsertRestrictionsConfiguration AddCustomHeaders(params CustomParameterCo /// public InsertRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { - foreach (var item in customQueryOptions) - { - _ = _customQueryOptions.Add(item); - } - + _customQueryOptions.UnionWith(customQueryOptions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs index cf3e56c..da01eda 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -70,11 +70,7 @@ public NavigationPropertyRestrictionConfiguration HasNavigability(NavigationType /// public NavigationPropertyRestrictionConfiguration AddFilterFunctions(params string[] filterFunctions) { - foreach (var item in filterFunctions) - { - _ = _filterFunctions.Add(item); - } - + _filterFunctions.UnionWith(filterFunctions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs index e4c0ea0..2f7c9a2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -45,11 +45,7 @@ public NavigationRestrictionsConfiguration HasNavigability(NavigationType naviga /// public NavigationRestrictionsConfiguration AddRestrictedProperties(params NavigationPropertyRestrictionConfiguration[] restrictedProperties) { - foreach (var item in restrictedProperties) - { - _ = _restrictedProperties.Add(item); - } - + _restrictedProperties.UnionWith(restrictedProperties); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs index 1b31224..88fd743 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -46,11 +46,7 @@ public OperationRestrictionsConfiguration IsFilterSegmentSupported(bool filterSe /// public OperationRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) { - foreach (var item in permissions) - { - _ = _permissions.Add(item); - } - + _permissions.UnionWith(permissions); return this; } @@ -61,11 +57,7 @@ public OperationRestrictionsConfiguration AddPermissions(params PermissionTypeCo /// public OperationRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { - foreach (var item in customHeaders) - { - _ = _customHeaders.Add(item); - } - + _customHeaders.UnionWith(customHeaders); return this; } @@ -76,11 +68,7 @@ public OperationRestrictionsConfiguration AddCustomHeaders(params CustomParamete /// public OperationRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { - foreach (var item in customQueryOptions) - { - _ = _customQueryOptions.Add(item); - } - + _customQueryOptions.UnionWith(customQueryOptions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs index 2e9a6e3..1f96bed 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs @@ -43,11 +43,7 @@ public PermissionTypeConfiguration HasSchemeName(string schemeName) /// public PermissionTypeConfiguration AddScopes(params ScopeTypeConfiguration[] scopes) { - foreach (var item in scopes) - { - _ = _scopes.Add(item); - } - + _scopes.UnionWith(scopes); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index 6fd1b59..78ebacb 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -47,11 +47,7 @@ public ReadByKeyRestrictionsTypeConfiguration IsReadable(bool readable) /// public ReadByKeyRestrictionsTypeConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) { - foreach (var item in permissions) - { - _ = _permissions.Add(item); - } - + _permissions.UnionWith(permissions); return this; } @@ -62,11 +58,7 @@ public ReadByKeyRestrictionsTypeConfiguration AddPermissions(params PermissionTy /// public ReadByKeyRestrictionsTypeConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { - foreach (var item in customHeaders) - { - _ = _customHeaders.Add(item); - } - + _customHeaders.UnionWith(customHeaders); return this; } @@ -77,11 +69,7 @@ public ReadByKeyRestrictionsTypeConfiguration AddCustomHeaders(params CustomPara /// public ReadByKeyRestrictionsTypeConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { - foreach (var item in customQueryOptions) - { - _ = _customQueryOptions.Add(item); - } - + _customQueryOptions.UnionWith(customQueryOptions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs index 5437d8c..f90ec36 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -49,11 +49,7 @@ public ReadRestrictionsConfiguration IsReadable(bool readable) /// public ReadRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) { - foreach (var item in permissions) - { - _ = _permissions.Add(item); - } - + _permissions.UnionWith(permissions); return this; } @@ -64,11 +60,7 @@ public ReadRestrictionsConfiguration AddPermissions(params PermissionTypeConfigu /// public ReadRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { - foreach (var item in customHeaders) - { - _ = _customHeaders.Add(item); - } - + _customHeaders.UnionWith(customHeaders); return this; } @@ -79,11 +71,7 @@ public ReadRestrictionsConfiguration AddCustomHeaders(params CustomParameterConf /// public ReadRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { - foreach (var item in customQueryOptions) - { - _ = _customQueryOptions.Add(item); - } - + _customQueryOptions.UnionWith(customQueryOptions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs index 5d0065a..303d580 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs @@ -46,11 +46,7 @@ public SortRestrictionsConfiguration IsSortable(bool sortable) /// public SortRestrictionsConfiguration AddAscendingOnlyProperties(params EdmPropertyPathExpression[] ascendingOnlyProperties) { - foreach (var item in ascendingOnlyProperties) - { - _ = _ascendingOnlyProperties.Add(item); - } - + _ascendingOnlyProperties.UnionWith(ascendingOnlyProperties); return this; } @@ -61,11 +57,7 @@ public SortRestrictionsConfiguration AddAscendingOnlyProperties(params EdmProper /// public SortRestrictionsConfiguration AddDescendingOnlyProperties(params EdmPropertyPathExpression[] descendingOnlyProperties) { - foreach (var item in descendingOnlyProperties) - { - _ = _descendingOnlyProperties.Add(item); - } - + _descendingOnlyProperties.UnionWith(descendingOnlyProperties); return this; } @@ -76,11 +68,7 @@ public SortRestrictionsConfiguration AddDescendingOnlyProperties(params EdmPrope /// public SortRestrictionsConfiguration AddNonSortableProperties(params EdmPropertyPathExpression[] nonSortableProperties) { - foreach (var item in nonSortableProperties) - { - _ = _nonSortableProperties.Add(item); - } - + _nonSortableProperties.UnionWith(nonSortableProperties); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs index 031fbc3..004039d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs @@ -32,11 +32,7 @@ public SupportedFormatsConfiguration() /// public SupportedFormatsConfiguration AddSupportedFormats(params string[] supportedFormats) { - foreach (var item in supportedFormats) - { - _ = _supportedFormats.Add(item); - } - + _supportedFormats.UnionWith(supportedFormats); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs index a6fe3fe..76fdfd9 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs @@ -32,11 +32,7 @@ public SupportedMetadataFormatsConfiguration() /// public SupportedMetadataFormatsConfiguration AddSupportedMetadataFormats(params string[] supportedMetadataFormats) { - foreach (var item in supportedMetadataFormats) - { - _ = _supportedMetadataFormats.Add(item); - } - + _supportedMetadataFormats.UnionWith(supportedMetadataFormats); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs index 23411b1..8505aa4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -99,11 +99,7 @@ public UpdateRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS /// public UpdateRestrictionsConfiguration AddNonUpdatableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonUpdatableNavigationProperties) { - foreach (var item in nonUpdatableNavigationProperties) - { - _ = _nonUpdatableNavigationProperties.Add(item); - } - + _nonUpdatableNavigationProperties.UnionWith(nonUpdatableNavigationProperties); return this; } @@ -125,11 +121,7 @@ public UpdateRestrictionsConfiguration HasMaxLevels(int maxLevels) /// public UpdateRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) { - foreach (var item in permissions) - { - _ = _permissions.Add(item); - } - + _permissions.UnionWith(permissions); return this; } @@ -151,11 +143,7 @@ public UpdateRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) { - foreach (var item in customHeaders) - { - _ = _customHeaders.Add(item); - } - + _customHeaders.UnionWith(customHeaders); return this; } @@ -166,11 +154,7 @@ public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomParameterCo /// public UpdateRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { - foreach (var item in customQueryOptions) - { - _ = _customQueryOptions.Add(item); - } - + _customQueryOptions.UnionWith(customQueryOptions); return this; } diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt index cd76f18..6de0e20 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt @@ -434,11 +434,7 @@ using Microsoft.OData.Edm.Vocabularies; /// public <#=returnType #> Add<#= name #>(params <#= clrType #>[] <#= camelName #>) { - foreach (var item in <#= camelName #>) - { - _ = _<#= camelName #>.Add(item); - } - + _<#= camelName #>.UnionWith(<#= camelName #>); return this; } <#+ From cc50a0e26b3f9d4904fc037894bee80fdbdc27ba Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 8 Jul 2020 15:46:10 +0300 Subject: [PATCH 16/29] Test asserting vocabulary annotations are not added by the modelbuilder unless explicitly called/added. --- .../DeleteRestrictionsConfigurationTests.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs index bc8be2a..352c0b5 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs @@ -30,6 +30,31 @@ public void DeleteRestrictionsChainsToSameInstance() Assert.Same(builder1, builder2); } + [Fact] + public void ModelBuilderHasNoCapabilitiesAnnotationsUnlessExplicitlyAdded() + { + var modelBuilder = new ODataModelBuilder().Add_Customers_EntitySet(); + var entitySetConfiguration = modelBuilder.EntitySet("Customers"); + + var model1 = modelBuilder.GetEdmModel(); + var entityContainer1 = model1.SchemaElements.OfType().SingleOrDefault(); + var customers1 = entityContainer1.EntitySets().SingleOrDefault(); + var term1 = model1.FindTerm("Org.OData.Capabilities.V1.DeleteRestrictions"); + var annotations1 = customers1.VocabularyAnnotations(model1).Where(a => a.Term == term1); + + Assert.Empty(annotations1); + + // Add annotations + _ = modelBuilder.EntitySet("Customers").HasDeleteRestrictions().IsDeletable(false); + var model2 = modelBuilder.GetEdmModel(); + var entityContainer2 = model2.SchemaElements.OfType().SingleOrDefault(); + var customers2 = entityContainer2.EntitySets().SingleOrDefault(); + var term2 = model2.FindTerm("Org.OData.Capabilities.V1.DeleteRestrictions"); + var annotations2 = customers2.VocabularyAnnotations(model2).Where(a => a.Term == term2); + + _ = Assert.Single(annotations2); + } + [Fact] public void AnnotationsAreAddedToModelOnBuild() { From f80fb68d0c2ec5bd68e3d84c9f1d7bb2dc44657a Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 8 Jul 2020 15:54:17 +0300 Subject: [PATCH 17/29] Sort usings, set copyright. --- .../Vocabulary/IRecord.cs | 16 ++++++++-------- .../VocabularyTermConfigurationExtensions.cs | 1 - .../VocabularyTermConfigurationExtensions.tt | 1 - .../DeleteRestrictionsConfigurationTests.cs | 10 +++++----- .../OperationRestrictionsConfigurationTests.cs | 11 +++++------ 5 files changed, 18 insertions(+), 21 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs index f0614a2..551de92 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs @@ -1,15 +1,15 @@ -using Microsoft.OData.Edm; +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +using Microsoft.OData.Edm; using Microsoft.OData.Edm.Vocabularies; -using System; -using System.Collections.Generic; -using System.Text; namespace Microsoft.OData.ModelBuilder { - /// - /// Interface for clr types that can be converted into - /// - public interface IRecord + /// + /// Interface for clr types that can be converted into + /// + public interface IRecord { /// /// Convert a clr type to an diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs index 972edf1..95e97db 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs @@ -7,7 +7,6 @@ using System.Linq; using Microsoft.OData.Edm; using Microsoft.OData.Edm.Vocabularies; - using Microsoft.OData.ModelBuilder.Capabilities.V1; using Microsoft.OData.ModelBuilder.Core.V1; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt index 6de0e20..2eb8a26 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt @@ -29,7 +29,6 @@ using System.Collections.Generic; using System.Linq; using Microsoft.OData.Edm; using Microsoft.OData.Edm.Vocabularies; - <# foreach(var ns in namespaces) { diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs index 352c0b5..7f52903 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs @@ -1,12 +1,12 @@ -using Microsoft.OData.Edm; +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +using System.Linq; +using Microsoft.OData.Edm; using Microsoft.OData.Edm.Vocabularies; using Microsoft.OData.ModelBuilder.Capabilities.V1; using Microsoft.OData.ModelBuilder.Tests.Commons; using Microsoft.OData.ModelBuilder.Tests.TestModels; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using Xunit; namespace Microsoft.OData.ModelBuilder.Tests.Vocabularies.Capabilities diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs index 797cc7e..80f526f 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs @@ -1,12 +1,11 @@ -using Microsoft.OData.Edm; +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +using System.Linq; +using Microsoft.OData.Edm; using Microsoft.OData.Edm.Vocabularies; using Microsoft.OData.ModelBuilder.Capabilities.V1; using Microsoft.OData.ModelBuilder.Tests.Commons; -using Microsoft.OData.ModelBuilder.Tests.TestModels; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using Xunit; namespace Microsoft.OData.ModelBuilder.Tests.Vocabularies.Capabilities From bcd70eabffaaa391f1578062652bf2774e6b940d Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 8 Jul 2020 15:57:18 +0300 Subject: [PATCH 18/29] Use HasX prefix for collection properties. --- .../Microsoft.OData.ModelBuilder.xml | 94 +++++++++---------- .../V1/AcceptableEncodingsConfiguration.cs | 2 +- .../V1/BatchSupportConfiguration.cs | 2 +- .../V1/CallbackSupportedConfiguration.cs | 2 +- .../V1/ChangeTrackingConfiguration.cs | 4 +- ...ectionPropertyRestrictionsConfiguration.cs | 2 +- ...onPropertyRestrictionsTypeConfiguration.cs | 2 +- .../V1/CountRestrictionsConfiguration.cs | 4 +- .../V1/CustomHeadersConfiguration.cs | 2 +- .../V1/CustomParameterConfiguration.cs | 2 +- .../V1/CustomQueryOptionsConfiguration.cs | 2 +- .../V1/DeleteRestrictionsConfiguration.cs | 8 +- .../V1/ExpandRestrictionsConfiguration.cs | 2 +- .../V1/FilterFunctionsConfiguration.cs | 2 +- .../V1/FilterRestrictionsConfiguration.cs | 6 +- .../V1/InsertRestrictionsConfiguration.cs | 10 +- ...igationPropertyRestrictionConfiguration.cs | 2 +- .../V1/NavigationRestrictionsConfiguration.cs | 2 +- .../V1/OperationRestrictionsConfiguration.cs | 6 +- .../V1/PermissionTypeConfiguration.cs | 2 +- .../ReadByKeyRestrictionsTypeConfiguration.cs | 6 +- .../V1/ReadRestrictionsConfiguration.cs | 6 +- .../V1/SortRestrictionsConfiguration.cs | 6 +- .../V1/SupportedFormatsConfiguration.cs | 2 +- .../SupportedMetadataFormatsConfiguration.cs | 2 +- .../V1/UpdateRestrictionsConfiguration.cs | 8 +- .../VocabularyTermConfigurationExtensions.tt | 2 +- .../DeleteRestrictionsConfigurationTests.cs | 4 +- ...OperationRestrictionsConfigurationTests.cs | 4 +- 29 files changed, 99 insertions(+), 99 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml index 529ff36..ad30626 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml @@ -5126,7 +5126,7 @@ Creates a new instance of - + List of acceptable compression methods for ($batch) requests, e.g. gzip @@ -5248,7 +5248,7 @@ The value to set - + Media types of supported formats for $batch @@ -5322,7 +5322,7 @@ Creates a new instance of - + List of supported callback protocols, e.g. `http` or `wss` @@ -5349,7 +5349,7 @@ The value to set - + Change tracking supports filters on these properties If no properties are specified or FilterableProperties is omitted, clients cannot assume support for filtering on any properties in combination with change tracking. @@ -5357,7 +5357,7 @@ The value(s) to set - + Change tracking supports these properties expanded If no properties are specified or ExpandableProperties is omitted, clients cannot assume support for expanding any properties in combination with change tracking. @@ -5378,7 +5378,7 @@ Creates a new instance of - + Describes restrictions on operations applied to collection-valued structural properties @@ -5405,7 +5405,7 @@ The value to set - + List of functions and operators supported in filter expressions. If not specified, null, or empty, all functions and operators may be attempted. @@ -5557,14 +5557,14 @@ The value to set - + These collection properties do not allow /$count segments The value(s) to set - + These navigation properties do not allow /$count segments @@ -5604,7 +5604,7 @@ Creates a new instance of - + Custom headers that are supported/required for the annotated resource @@ -5653,7 +5653,7 @@ The value to set - + Example values for the custom parameter @@ -5674,7 +5674,7 @@ Creates a new instance of - + Custom query options that are supported/required for the annotated resource If the entity container is annotated, the query option is supported/required by all resources in that container. @@ -5756,7 +5756,7 @@ The value to set - + These navigation properties do not allow DeleteLink requests @@ -5784,21 +5784,21 @@ The value to set - + Required permissions. One of the specified sets of scopes is required to perform the delete. The value(s) to set - + Supported or required custom headers The value(s) to set - + Supported or required custom query options @@ -5846,7 +5846,7 @@ The value to set - + These properties cannot be used in expand expressions @@ -5901,7 +5901,7 @@ Creates a new instance of - + List of functions and operators supported in filter expressions. If not specified, null, or empty, all functions and operators may be attempted. @@ -5936,21 +5936,21 @@ The value to set - + These properties must be specified in the $filter clause (properties of derived types are not allowed here) The value(s) to set - + These structural properties cannot be used in filter expressions The value(s) to set - + These properties only allow a subset of filter expressions. A valid filter expression for a single property can be enclosed in parentheses and combined by `and` with valid expressions for other properties. @@ -6004,14 +6004,14 @@ The value to set - + These structural properties cannot be specified on insert The value(s) to set - + These navigation properties do not allow deep inserts @@ -6032,7 +6032,7 @@ The value to set - + Required permissions. One of the specified sets of scopes is required to perform the insert. @@ -6046,14 +6046,14 @@ The value to set - + Supported or required custom headers The value(s) to set - + Supported or required custom query options @@ -6226,7 +6226,7 @@ The value to set - + List of functions and operators supported in filter expressions. If not specified, null, or empty, all functions and operators may be attempted. @@ -6353,7 +6353,7 @@ The value to set - + List of navigation properties with restrictions @@ -6400,21 +6400,21 @@ The value to set - + Required permissions. One of the specified sets of scopes is required to invoke an action or function The value(s) to set - + Supported or required custom headers The value(s) to set - + Supported or required custom query options @@ -6441,7 +6441,7 @@ The value to set - + List of scopes that can provide access to the resource @@ -6488,21 +6488,21 @@ The value to set - + Required permissions. One of the specified sets of scopes is required to read. The value(s) to set - + Supported or required custom headers The value(s) to set - + Supported or required custom query options @@ -6543,21 +6543,21 @@ The value to set - + Required permissions. One of the specified sets of scopes is required to read. The value(s) to set - + Supported or required custom headers The value(s) to set - + Supported or required custom query options @@ -6799,21 +6799,21 @@ The value to set - + These properties can only be used for sorting in Ascending order The value(s) to set - + These properties can only be used for sorting in Descending order The value(s) to set - + These structural properties cannot be used in orderby expressions @@ -6833,7 +6833,7 @@ Creates a new instance of - + Media types of supported formats, including format parameters @@ -6853,7 +6853,7 @@ Creates a new instance of - + Media types of supported formats for $metadata, including format parameters @@ -6928,7 +6928,7 @@ The value to set - + These navigation properties do not allow rebinding @@ -6942,7 +6942,7 @@ The value to set - + Required permissions. One of the specified sets of scopes is required to perform the update. @@ -6956,14 +6956,14 @@ The value to set - + Supported or required custom headers The value(s) to set - + Supported or required custom query options diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs index 275cfa1..1c1909e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs @@ -30,7 +30,7 @@ public AcceptableEncodingsConfiguration() /// /// The value(s) to set /// - public AcceptableEncodingsConfiguration AddAcceptableEncodings(params string[] acceptableEncodings) + public AcceptableEncodingsConfiguration HasAcceptableEncodings(params string[] acceptableEncodings) { _acceptableEncodings.UnionWith(acceptableEncodings); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs index 4d0a21c..71418e2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs @@ -102,7 +102,7 @@ public BatchSupportConfiguration IsRequestDependencyConditionsSupported(bool req /// /// The value(s) to set /// - public BatchSupportConfiguration AddSupportedFormats(params string[] supportedFormats) + public BatchSupportConfiguration HasSupportedFormats(params string[] supportedFormats) { _supportedFormats.UnionWith(supportedFormats); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs index ca16f29..f6401b7 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs @@ -30,7 +30,7 @@ public CallbackSupportedConfiguration() /// /// The value(s) to set /// - public CallbackSupportedConfiguration AddCallbackProtocols(params CallbackProtocolConfiguration[] callbackProtocols) + public CallbackSupportedConfiguration HasCallbackProtocols(params CallbackProtocolConfiguration[] callbackProtocols) { _callbackProtocols.UnionWith(callbackProtocols); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs index f00754f..77b5ef0 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs @@ -44,7 +44,7 @@ public ChangeTrackingConfiguration IsSupported(bool supported) /// /// The value(s) to set /// - public ChangeTrackingConfiguration AddFilterableProperties(params EdmPropertyPathExpression[] filterableProperties) + public ChangeTrackingConfiguration HasFilterableProperties(params EdmPropertyPathExpression[] filterableProperties) { _filterableProperties.UnionWith(filterableProperties); return this; @@ -56,7 +56,7 @@ public ChangeTrackingConfiguration AddFilterableProperties(params EdmPropertyPat /// /// The value(s) to set /// - public ChangeTrackingConfiguration AddExpandableProperties(params EdmNavigationPropertyPathExpression[] expandableProperties) + public ChangeTrackingConfiguration HasExpandableProperties(params EdmNavigationPropertyPathExpression[] expandableProperties) { _expandableProperties.UnionWith(expandableProperties); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs index 802fcdd..7b6f2e9 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -30,7 +30,7 @@ public CollectionPropertyRestrictionsConfiguration() /// /// The value(s) to set /// - public CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions(params CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) + public CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions(params CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) { _collectionPropertyRestrictions.UnionWith(collectionPropertyRestrictions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs index 334d3b3..11b9198 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -51,7 +51,7 @@ public CollectionPropertyRestrictionsTypeConfiguration HasCollectionProperty(Edm /// /// The value(s) to set /// - public CollectionPropertyRestrictionsTypeConfiguration AddFilterFunctions(params string[] filterFunctions) + public CollectionPropertyRestrictionsTypeConfiguration HasFilterFunctions(params string[] filterFunctions) { _filterFunctions.UnionWith(filterFunctions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs index 536837e..8eed671 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs @@ -43,7 +43,7 @@ public CountRestrictionsConfiguration IsCountable(bool countable) /// /// The value(s) to set /// - public CountRestrictionsConfiguration AddNonCountableProperties(params EdmPropertyPathExpression[] nonCountableProperties) + public CountRestrictionsConfiguration HasNonCountableProperties(params EdmPropertyPathExpression[] nonCountableProperties) { _nonCountableProperties.UnionWith(nonCountableProperties); return this; @@ -54,7 +54,7 @@ public CountRestrictionsConfiguration AddNonCountableProperties(params EdmProper /// /// The value(s) to set /// - public CountRestrictionsConfiguration AddNonCountableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonCountableNavigationProperties) + public CountRestrictionsConfiguration HasNonCountableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonCountableNavigationProperties) { _nonCountableNavigationProperties.UnionWith(nonCountableNavigationProperties); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs index 43fcd36..e7cec5f 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs @@ -30,7 +30,7 @@ public CustomHeadersConfiguration() /// /// The value(s) to set /// - public CustomHeadersConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public CustomHeadersConfiguration HasCustomHeaders(params CustomParameterConfiguration[] customHeaders) { _customHeaders.UnionWith(customHeaders); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs index 0db6228..34f4fcf 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs @@ -78,7 +78,7 @@ public CustomParameterConfiguration IsRequired(bool required) /// /// The value(s) to set /// - public CustomParameterConfiguration AddExampleValues(params Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration[] exampleValues) + public CustomParameterConfiguration HasExampleValues(params Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration[] exampleValues) { _exampleValues.UnionWith(exampleValues); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs index 97350de..0e2893e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -32,7 +32,7 @@ public CustomQueryOptionsConfiguration() /// /// The value(s) to set /// - public CustomQueryOptionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public CustomQueryOptionsConfiguration HasCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { _customQueryOptions.UnionWith(customQueryOptions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs index d4daf32..6620db7 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -50,7 +50,7 @@ public DeleteRestrictionsConfiguration IsDeletable(bool deletable) /// /// The value(s) to set /// - public DeleteRestrictionsConfiguration AddNonDeletableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonDeletableNavigationProperties) + public DeleteRestrictionsConfiguration HasNonDeletableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonDeletableNavigationProperties) { _nonDeletableNavigationProperties.UnionWith(nonDeletableNavigationProperties); return this; @@ -94,7 +94,7 @@ public DeleteRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS /// /// The value(s) to set /// - public DeleteRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + public DeleteRestrictionsConfiguration HasPermissions(params PermissionTypeConfiguration[] permissions) { _permissions.UnionWith(permissions); return this; @@ -105,7 +105,7 @@ public DeleteRestrictionsConfiguration AddPermissions(params PermissionTypeConfi /// /// The value(s) to set /// - public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public DeleteRestrictionsConfiguration HasCustomHeaders(params CustomParameterConfiguration[] customHeaders) { _customHeaders.UnionWith(customHeaders); return this; @@ -116,7 +116,7 @@ public DeleteRestrictionsConfiguration AddCustomHeaders(params CustomParameterCo /// /// The value(s) to set /// - public DeleteRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public DeleteRestrictionsConfiguration HasCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { _customQueryOptions.UnionWith(customQueryOptions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs index 82e8fc7..f30b8cc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs @@ -55,7 +55,7 @@ public ExpandRestrictionsConfiguration IsStreamsExpandable(bool streamsExpandabl /// /// The value(s) to set /// - public ExpandRestrictionsConfiguration AddNonExpandableProperties(params EdmNavigationPropertyPathExpression[] nonExpandableProperties) + public ExpandRestrictionsConfiguration HasNonExpandableProperties(params EdmNavigationPropertyPathExpression[] nonExpandableProperties) { _nonExpandableProperties.UnionWith(nonExpandableProperties); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs index cda5b0e..5e3e776 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs @@ -32,7 +32,7 @@ public FilterFunctionsConfiguration() /// /// The value(s) to set /// - public FilterFunctionsConfiguration AddFilterFunctions(params string[] filterFunctions) + public FilterFunctionsConfiguration HasFilterFunctions(params string[] filterFunctions) { _filterFunctions.UnionWith(filterFunctions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs index 8e39240..16a84a8 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs @@ -57,7 +57,7 @@ public FilterRestrictionsConfiguration IsRequiresFilter(bool requiresFilter) /// /// The value(s) to set /// - public FilterRestrictionsConfiguration AddRequiredProperties(params EdmPropertyPathExpression[] requiredProperties) + public FilterRestrictionsConfiguration HasRequiredProperties(params EdmPropertyPathExpression[] requiredProperties) { _requiredProperties.UnionWith(requiredProperties); return this; @@ -68,7 +68,7 @@ public FilterRestrictionsConfiguration AddRequiredProperties(params EdmPropertyP /// /// The value(s) to set /// - public FilterRestrictionsConfiguration AddNonFilterableProperties(params EdmPropertyPathExpression[] nonFilterableProperties) + public FilterRestrictionsConfiguration HasNonFilterableProperties(params EdmPropertyPathExpression[] nonFilterableProperties) { _nonFilterableProperties.UnionWith(nonFilterableProperties); return this; @@ -79,7 +79,7 @@ public FilterRestrictionsConfiguration AddNonFilterableProperties(params EdmProp /// /// The value(s) to set /// - public FilterRestrictionsConfiguration AddFilterExpressionRestrictions(params FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) + public FilterRestrictionsConfiguration HasFilterExpressionRestrictions(params FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) { _filterExpressionRestrictions.UnionWith(filterExpressionRestrictions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs index 301f68f..7aa6e51 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -51,7 +51,7 @@ public InsertRestrictionsConfiguration IsInsertable(bool insertable) /// /// The value(s) to set /// - public InsertRestrictionsConfiguration AddNonInsertableProperties(params EdmPropertyPathExpression[] nonInsertableProperties) + public InsertRestrictionsConfiguration HasNonInsertableProperties(params EdmPropertyPathExpression[] nonInsertableProperties) { _nonInsertableProperties.UnionWith(nonInsertableProperties); return this; @@ -62,7 +62,7 @@ public InsertRestrictionsConfiguration AddNonInsertableProperties(params EdmProp /// /// The value(s) to set /// - public InsertRestrictionsConfiguration AddNonInsertableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonInsertableNavigationProperties) + public InsertRestrictionsConfiguration HasNonInsertableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonInsertableNavigationProperties) { _nonInsertableNavigationProperties.UnionWith(nonInsertableNavigationProperties); return this; @@ -95,7 +95,7 @@ public InsertRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS /// /// The value(s) to set /// - public InsertRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + public InsertRestrictionsConfiguration HasPermissions(params PermissionTypeConfiguration[] permissions) { _permissions.UnionWith(permissions); return this; @@ -117,7 +117,7 @@ public InsertRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// /// The value(s) to set /// - public InsertRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public InsertRestrictionsConfiguration HasCustomHeaders(params CustomParameterConfiguration[] customHeaders) { _customHeaders.UnionWith(customHeaders); return this; @@ -128,7 +128,7 @@ public InsertRestrictionsConfiguration AddCustomHeaders(params CustomParameterCo /// /// The value(s) to set /// - public InsertRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public InsertRestrictionsConfiguration HasCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { _customQueryOptions.UnionWith(customQueryOptions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs index da01eda..73ac416 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -68,7 +68,7 @@ public NavigationPropertyRestrictionConfiguration HasNavigability(NavigationType /// /// The value(s) to set /// - public NavigationPropertyRestrictionConfiguration AddFilterFunctions(params string[] filterFunctions) + public NavigationPropertyRestrictionConfiguration HasFilterFunctions(params string[] filterFunctions) { _filterFunctions.UnionWith(filterFunctions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs index 2f7c9a2..9756bde 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -43,7 +43,7 @@ public NavigationRestrictionsConfiguration HasNavigability(NavigationType naviga /// /// The value(s) to set /// - public NavigationRestrictionsConfiguration AddRestrictedProperties(params NavigationPropertyRestrictionConfiguration[] restrictedProperties) + public NavigationRestrictionsConfiguration HasRestrictedProperties(params NavigationPropertyRestrictionConfiguration[] restrictedProperties) { _restrictedProperties.UnionWith(restrictedProperties); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs index 88fd743..dfa7dad 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -44,7 +44,7 @@ public OperationRestrictionsConfiguration IsFilterSegmentSupported(bool filterSe /// /// The value(s) to set /// - public OperationRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + public OperationRestrictionsConfiguration HasPermissions(params PermissionTypeConfiguration[] permissions) { _permissions.UnionWith(permissions); return this; @@ -55,7 +55,7 @@ public OperationRestrictionsConfiguration AddPermissions(params PermissionTypeCo /// /// The value(s) to set /// - public OperationRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public OperationRestrictionsConfiguration HasCustomHeaders(params CustomParameterConfiguration[] customHeaders) { _customHeaders.UnionWith(customHeaders); return this; @@ -66,7 +66,7 @@ public OperationRestrictionsConfiguration AddCustomHeaders(params CustomParamete /// /// The value(s) to set /// - public OperationRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public OperationRestrictionsConfiguration HasCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { _customQueryOptions.UnionWith(customQueryOptions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs index 1f96bed..474106d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs @@ -41,7 +41,7 @@ public PermissionTypeConfiguration HasSchemeName(string schemeName) /// /// The value(s) to set /// - public PermissionTypeConfiguration AddScopes(params ScopeTypeConfiguration[] scopes) + public PermissionTypeConfiguration HasScopes(params ScopeTypeConfiguration[] scopes) { _scopes.UnionWith(scopes); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index 78ebacb..43bc8b9 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -45,7 +45,7 @@ public ReadByKeyRestrictionsTypeConfiguration IsReadable(bool readable) /// /// The value(s) to set /// - public ReadByKeyRestrictionsTypeConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + public ReadByKeyRestrictionsTypeConfiguration HasPermissions(params PermissionTypeConfiguration[] permissions) { _permissions.UnionWith(permissions); return this; @@ -56,7 +56,7 @@ public ReadByKeyRestrictionsTypeConfiguration AddPermissions(params PermissionTy /// /// The value(s) to set /// - public ReadByKeyRestrictionsTypeConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public ReadByKeyRestrictionsTypeConfiguration HasCustomHeaders(params CustomParameterConfiguration[] customHeaders) { _customHeaders.UnionWith(customHeaders); return this; @@ -67,7 +67,7 @@ public ReadByKeyRestrictionsTypeConfiguration AddCustomHeaders(params CustomPara /// /// The value(s) to set /// - public ReadByKeyRestrictionsTypeConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public ReadByKeyRestrictionsTypeConfiguration HasCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { _customQueryOptions.UnionWith(customQueryOptions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs index f90ec36..e02aae8 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -47,7 +47,7 @@ public ReadRestrictionsConfiguration IsReadable(bool readable) /// /// The value(s) to set /// - public ReadRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + public ReadRestrictionsConfiguration HasPermissions(params PermissionTypeConfiguration[] permissions) { _permissions.UnionWith(permissions); return this; @@ -58,7 +58,7 @@ public ReadRestrictionsConfiguration AddPermissions(params PermissionTypeConfigu /// /// The value(s) to set /// - public ReadRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public ReadRestrictionsConfiguration HasCustomHeaders(params CustomParameterConfiguration[] customHeaders) { _customHeaders.UnionWith(customHeaders); return this; @@ -69,7 +69,7 @@ public ReadRestrictionsConfiguration AddCustomHeaders(params CustomParameterConf /// /// The value(s) to set /// - public ReadRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public ReadRestrictionsConfiguration HasCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { _customQueryOptions.UnionWith(customQueryOptions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs index 303d580..5650dbf 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs @@ -44,7 +44,7 @@ public SortRestrictionsConfiguration IsSortable(bool sortable) /// /// The value(s) to set /// - public SortRestrictionsConfiguration AddAscendingOnlyProperties(params EdmPropertyPathExpression[] ascendingOnlyProperties) + public SortRestrictionsConfiguration HasAscendingOnlyProperties(params EdmPropertyPathExpression[] ascendingOnlyProperties) { _ascendingOnlyProperties.UnionWith(ascendingOnlyProperties); return this; @@ -55,7 +55,7 @@ public SortRestrictionsConfiguration AddAscendingOnlyProperties(params EdmProper /// /// The value(s) to set /// - public SortRestrictionsConfiguration AddDescendingOnlyProperties(params EdmPropertyPathExpression[] descendingOnlyProperties) + public SortRestrictionsConfiguration HasDescendingOnlyProperties(params EdmPropertyPathExpression[] descendingOnlyProperties) { _descendingOnlyProperties.UnionWith(descendingOnlyProperties); return this; @@ -66,7 +66,7 @@ public SortRestrictionsConfiguration AddDescendingOnlyProperties(params EdmPrope /// /// The value(s) to set /// - public SortRestrictionsConfiguration AddNonSortableProperties(params EdmPropertyPathExpression[] nonSortableProperties) + public SortRestrictionsConfiguration HasNonSortableProperties(params EdmPropertyPathExpression[] nonSortableProperties) { _nonSortableProperties.UnionWith(nonSortableProperties); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs index 004039d..30a51fc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs @@ -30,7 +30,7 @@ public SupportedFormatsConfiguration() /// /// The value(s) to set /// - public SupportedFormatsConfiguration AddSupportedFormats(params string[] supportedFormats) + public SupportedFormatsConfiguration HasSupportedFormats(params string[] supportedFormats) { _supportedFormats.UnionWith(supportedFormats); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs index 76fdfd9..fc0b873 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs @@ -30,7 +30,7 @@ public SupportedMetadataFormatsConfiguration() /// /// The value(s) to set /// - public SupportedMetadataFormatsConfiguration AddSupportedMetadataFormats(params string[] supportedMetadataFormats) + public SupportedMetadataFormatsConfiguration HasSupportedMetadataFormats(params string[] supportedMetadataFormats) { _supportedMetadataFormats.UnionWith(supportedMetadataFormats); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs index 8505aa4..36d838e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -97,7 +97,7 @@ public UpdateRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS /// /// The value(s) to set /// - public UpdateRestrictionsConfiguration AddNonUpdatableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonUpdatableNavigationProperties) + public UpdateRestrictionsConfiguration HasNonUpdatableNavigationProperties(params EdmNavigationPropertyPathExpression[] nonUpdatableNavigationProperties) { _nonUpdatableNavigationProperties.UnionWith(nonUpdatableNavigationProperties); return this; @@ -119,7 +119,7 @@ public UpdateRestrictionsConfiguration HasMaxLevels(int maxLevels) /// /// The value(s) to set /// - public UpdateRestrictionsConfiguration AddPermissions(params PermissionTypeConfiguration[] permissions) + public UpdateRestrictionsConfiguration HasPermissions(params PermissionTypeConfiguration[] permissions) { _permissions.UnionWith(permissions); return this; @@ -141,7 +141,7 @@ public UpdateRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// /// The value(s) to set /// - public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomParameterConfiguration[] customHeaders) + public UpdateRestrictionsConfiguration HasCustomHeaders(params CustomParameterConfiguration[] customHeaders) { _customHeaders.UnionWith(customHeaders); return this; @@ -152,7 +152,7 @@ public UpdateRestrictionsConfiguration AddCustomHeaders(params CustomParameterCo /// /// The value(s) to set /// - public UpdateRestrictionsConfiguration AddCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) + public UpdateRestrictionsConfiguration HasCustomQueryOptions(params CustomParameterConfiguration[] customQueryOptions) { _customQueryOptions.UnionWith(customQueryOptions); return this; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt index 2eb8a26..b01dee4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt @@ -431,7 +431,7 @@ using Microsoft.OData.Edm.Vocabularies; /// /// The value(s) to set /// - public <#=returnType #> Add<#= name #>(params <#= clrType #>[] <#= camelName #>) + public <#=returnType #> Has<#= name #>(params <#= clrType #>[] <#= camelName #>) { _<#= camelName #>.UnionWith(<#= camelName #>); return this; diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs index 7f52903..5752f0d 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs @@ -92,10 +92,10 @@ public void PermissionsCanBeAddedToEntitySet() .HasDeleteRestrictions() .IsDeletable(false) .HasDescription(Description) - .AddPermissions( + .HasPermissions( new PermissionTypeConfiguration() .HasSchemeName(SchemeName) - .AddScopes( + .HasScopes( new ScopeTypeConfiguration() .HasScope(CustomerReadWriteAllScope) .HasRestrictedProperties("*"))) diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs index 80f526f..b8f30c9 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/OperationRestrictionsConfigurationTests.cs @@ -63,10 +63,10 @@ public void PermissionsCanBeAddedToOperation() var operationRestrictionsBuilder = actionConfiguration .HasOperationRestrictions() .IsFilterSegmentSupported(true) - .AddPermissions( + .HasPermissions( new PermissionTypeConfiguration() .HasSchemeName(SchemeName) - .AddScopes( + .HasScopes( new ScopeTypeConfiguration() .HasScope(CustomerReadWriteAllScope) .HasRestrictedProperties("*"))); From 0a7b173aa4108cafb94d55241f81a2ef8f26852b Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 8 Jul 2020 15:59:57 +0300 Subject: [PATCH 19/29] Sort usings, add copyright. --- .../Vocabulary/VocabularyTermConfiguration.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs index f459de6..59c31fd 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs @@ -1,8 +1,9 @@ -using Microsoft.OData.Edm; -using Microsoft.OData.Edm.Vocabularies; +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + using System; -using System.Collections.Generic; -using System.Text; +using Microsoft.OData.Edm; +using Microsoft.OData.Edm.Vocabularies; namespace Microsoft.OData.ModelBuilder { From bd9ea4a8f2298dadfdcb9e47d6a057ec2a88db09 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 8 Jul 2020 16:52:20 +0300 Subject: [PATCH 20/29] Renaming Vocabulary folder to Vocabularies. --- .../Microsoft.OData.ModelBuilder.csproj | 4 ++-- .../Capabilities/V1/AcceptableEncodingsConfiguration.cs | 0 .../V1/AnnotationValuesInQuerySupportedConfiguration.cs | 0 .../V1/AsynchronousRequestsSupportedConfiguration.cs | 0 .../V1/BatchContinueOnErrorSupportedConfiguration.cs | 0 .../Capabilities/V1/BatchSupportConfiguration.cs | 0 .../Capabilities/V1/BatchSupportedConfiguration.cs | 0 .../Capabilities/V1/CallbackProtocolConfiguration.cs | 0 .../Capabilities/V1/CallbackSupportedConfiguration.cs | 0 .../Capabilities/V1/ChangeTrackingConfiguration.cs | 0 .../V1/CollectionPropertyRestrictionsConfiguration.cs | 0 .../V1/CollectionPropertyRestrictionsTypeConfiguration.cs | 0 .../Capabilities/V1/ComputeSupportedConfiguration.cs | 0 .../Capabilities/V1/ConformanceLevelConfiguration.cs | 0 .../Capabilities/V1/ConformanceLevelType.cs | 0 .../Capabilities/V1/CountRestrictionsConfiguration.cs | 0 .../Capabilities/V1/CrossJoinSupportedConfiguration.cs | 0 .../Capabilities/V1/CustomHeadersConfiguration.cs | 0 .../Capabilities/V1/CustomParameterConfiguration.cs | 0 .../Capabilities/V1/CustomQueryOptionsConfiguration.cs | 0 .../Capabilities/V1/DeepInsertSupportConfiguration.cs | 0 .../Capabilities/V1/DeepUpdateSupportConfiguration.cs | 0 .../Capabilities/V1/DeleteRestrictionsConfiguration.cs | 0 .../Capabilities/V1/ExpandRestrictionsConfiguration.cs | 0 .../V1/FilterExpressionRestrictionTypeConfiguration.cs | 0 .../Capabilities/V1/FilterFunctionsConfiguration.cs | 0 .../Capabilities/V1/FilterRestrictionsConfiguration.cs | 0 .../Capabilities/V1/IndexableByKeyConfiguration.cs | 0 .../Capabilities/V1/InsertRestrictionsConfiguration.cs | 0 .../Capabilities/V1/IsolationLevel.cs | 0 .../Capabilities/V1/IsolationSupportedConfiguration.cs | 0 .../Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs | 0 .../V1/MediaLocationUpdateSupportedConfiguration.cs | 0 .../Capabilities/V1/ModificationQueryOptionsConfiguration.cs | 0 .../V1/NavigationPropertyRestrictionConfiguration.cs | 0 .../Capabilities/V1/NavigationRestrictionsConfiguration.cs | 0 .../Capabilities/V1/NavigationType.cs | 0 .../Capabilities/V1/OperationRestrictionsConfiguration.cs | 0 .../Capabilities/V1/PermissionTypeConfiguration.cs | 0 .../Capabilities/V1/QuerySegmentSupportedConfiguration.cs | 0 .../Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs | 0 .../Capabilities/V1/ReadRestrictionsConfiguration.cs | 0 .../Capabilities/V1/ScopeTypeConfiguration.cs | 0 .../Capabilities/V1/SearchExpressions.cs | 0 .../Capabilities/V1/SearchRestrictionsConfiguration.cs | 0 .../Capabilities/V1/SelectSupportConfiguration.cs | 0 .../Capabilities/V1/SkipSupportedConfiguration.cs | 0 .../Capabilities/V1/SortRestrictionsConfiguration.cs | 0 .../Capabilities/V1/SupportedFormatsConfiguration.cs | 0 .../Capabilities/V1/SupportedMetadataFormatsConfiguration.cs | 0 .../Capabilities/V1/TopSupportedConfiguration.cs | 0 .../Capabilities/V1/UpdateRestrictionsConfiguration.cs | 0 .../CapabilitiesNavigationType.cs | 0 .../CapabilitiesVocabularyConstants.cs | 0 .../CapabilitiesVocabularyExtensionMethods.cs | 0 .../Core/V1/PrimitiveExampleValueConfiguration.cs | 0 .../{Vocabulary => Vocabularies}/IRecord.cs | 0 .../VocabularyTermConfiguration.cs | 0 .../VocabularyTermConfigurationExtensions.cs | 0 .../VocabularyTermConfigurationExtensions.tt | 0 60 files changed, 2 insertions(+), 2 deletions(-) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/AcceptableEncodingsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/BatchSupportConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/BatchSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/CallbackProtocolConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/CallbackSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/ChangeTrackingConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/ComputeSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/ConformanceLevelConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/ConformanceLevelType.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/CountRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/CrossJoinSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/CustomHeadersConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/CustomParameterConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/CustomQueryOptionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/DeepInsertSupportConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/DeepUpdateSupportConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/DeleteRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/ExpandRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/FilterFunctionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/FilterRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/IndexableByKeyConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/InsertRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/IsolationLevel.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/IsolationSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/ModificationQueryOptionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/NavigationRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/NavigationType.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/OperationRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/PermissionTypeConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/QuerySegmentSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/ReadRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/ScopeTypeConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/SearchExpressions.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/SearchRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/SelectSupportConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/SkipSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/SortRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/SupportedFormatsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/TopSupportedConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Capabilities/V1/UpdateRestrictionsConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/CapabilitiesNavigationType.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/CapabilitiesVocabularyConstants.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/CapabilitiesVocabularyExtensionMethods.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/Core/V1/PrimitiveExampleValueConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/IRecord.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/VocabularyTermConfiguration.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/VocabularyTermConfigurationExtensions.cs (100%) rename src/Microsoft.OData.ModelBuilder/{Vocabulary => Vocabularies}/VocabularyTermConfigurationExtensions.tt (100%) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj index 04275d6..45e8542 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj @@ -33,7 +33,7 @@ True SRResources.resx - + True True VocabularyTermConfigurationExtensions.tt @@ -48,7 +48,7 @@ - + TextTemplatingFileGenerator VocabularyTermConfigurationExtensions.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AcceptableEncodingsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AcceptableEncodingsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AcceptableEncodingsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/BatchSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackProtocolConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackProtocolConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackProtocolConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CallbackSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ChangeTrackingConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ChangeTrackingConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ChangeTrackingConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ComputeSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelType.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelType.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ConformanceLevelType.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelType.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CountRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CountRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CountRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CrossJoinSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomHeadersConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomParameterConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/CustomQueryOptionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepInsertSupportConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepInsertSupportConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepInsertSupportConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepUpdateSupportConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeepUpdateSupportConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepUpdateSupportConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/DeleteRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ExpandRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ExpandRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ExpandRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterExpressionRestrictionTypeConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterFunctionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterFunctionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterFunctionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/FilterRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IndexableByKeyConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/InsertRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationLevel.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationLevel.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationLevel.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationLevel.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/IsolationSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ModificationQueryOptionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ModificationQueryOptionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ModificationQueryOptionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationType.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationType.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/NavigationType.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationType.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/OperationRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/PermissionTypeConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/QuerySegmentSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ReadRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ScopeTypeConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/ScopeTypeConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ScopeTypeConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchExpressions.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchExpressions.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchExpressions.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SearchRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SelectSupportConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SelectSupportConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SelectSupportConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SkipSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SortRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SortRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SortRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedFormatsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedFormatsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedFormatsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/TopSupportedConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Capabilities/V1/UpdateRestrictionsConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/CapabilitiesNavigationType.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/CapabilitiesNavigationType.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/CapabilitiesNavigationType.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/CapabilitiesNavigationType.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/CapabilitiesVocabularyConstants.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/CapabilitiesVocabularyConstants.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/CapabilitiesVocabularyConstants.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/CapabilitiesVocabularyConstants.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/CapabilitiesVocabularyExtensionMethods.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/CapabilitiesVocabularyExtensionMethods.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/CapabilitiesVocabularyExtensionMethods.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/CapabilitiesVocabularyExtensionMethods.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PrimitiveExampleValueConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/Core/V1/PrimitiveExampleValueConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PrimitiveExampleValueConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/IRecord.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/IRecord.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/IRecord.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfiguration.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.cs similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.cs rename to src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.cs diff --git a/src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt similarity index 100% rename from src/Microsoft.OData.ModelBuilder/Vocabulary/VocabularyTermConfigurationExtensions.tt rename to src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt From ab9c096138ba13e207f21502b9806f48608f4a30 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 8 Jul 2020 17:01:17 +0300 Subject: [PATCH 21/29] Update Public bsl after changes. --- ...Microsoft.OData.ModelBuilder.PublicApi.bsl | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl index 8a0aaf6..700809e 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl +++ b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl @@ -1104,7 +1104,7 @@ public enum Microsoft.OData.ModelBuilder.Capabilities.V1.SearchExpressions : int public class Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public AcceptableEncodingsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration AddAcceptableEncodings (string[] acceptableEncodings) + public Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration HasAcceptableEncodings (string[] acceptableEncodings) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1132,7 +1132,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSu public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public BatchSupportConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration AddSupportedFormats (string[] supportedFormats) + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasSupportedFormats (string[] supportedFormats) public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsContinueOnErrorSupported (bool continueOnErrorSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsEtagReferencesSupported (bool etagReferencesSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsReferencesAcrossChangeSetsSupported (bool referencesAcrossChangeSetsSupported) @@ -1161,15 +1161,15 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfig public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CallbackSupportedConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration AddCallbackProtocols (Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration[] callbackProtocols) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration HasCallbackProtocols (Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration[] callbackProtocols) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } public class Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ChangeTrackingConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration AddExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] expandableProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration AddFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] filterableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration HasExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] expandableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration HasFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] filterableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration IsSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1177,15 +1177,15 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfigur public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CollectionPropertyRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration AddCollectionPropertyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration : IRecord { public CollectionPropertyRestrictionsTypeConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration AddFilterFunctions (string[] filterFunctions) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasCollectionProperty (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression collectionProperty) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasFilterFunctions (string[] filterFunctions) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration filterRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration searchRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration selectSupport) @@ -1215,8 +1215,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelConfig public class Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CountRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration AddNonCountableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonCountableNavigationProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration AddNonCountableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonCountableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration HasNonCountableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonCountableNavigationProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration HasNonCountableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonCountableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration IsCountable (bool countable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1231,16 +1231,16 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConf public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CustomHeadersConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration : IRecord { public CustomParameterConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration AddExampleValues (Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration[] exampleValues) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasDocumentationURL (string documentationURL) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasExampleValues (Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration[] exampleValues) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasName (string name) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration IsRequired (bool required) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1249,7 +1249,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfigu public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CustomQueryOptionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1272,13 +1272,13 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfi public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public DeleteRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddNonDeletableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonDeletableNavigationProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasNonDeletableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonDeletableNavigationProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration IsDeletable (bool deletable) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration IsFilterSegmentSupported (bool filterSegmentSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration IsTypecastSegmentSupported (bool typecastSegmentSupported) @@ -1288,8 +1288,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConf public class Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ExpandRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration AddNonExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonExpandableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasNonExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonExpandableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration IsExpandable (bool expandable) public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration IsStreamsExpandable (bool streamsExpandable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1306,17 +1306,17 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestri public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public FilterFunctionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration AddFilterFunctions (string[] filterFunctions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration HasFilterFunctions (string[] filterFunctions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public FilterRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration AddFilterExpressionRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration AddNonFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonFilterableProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration AddRequiredProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] requiredProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasFilterExpressionRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasNonFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonFilterableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasRequiredProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] requiredProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration IsFilterable (bool filterable) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration IsRequiresFilter (bool requiresFilter) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1332,14 +1332,14 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfigur public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public InsertRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) - public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddNonInsertableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonInsertableNavigationProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddNonInsertableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonInsertableProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasNonInsertableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonInsertableNavigationProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasNonInsertableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonInsertableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration queryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration IsInsertable (bool insertable) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration IsTypecastSegmentSupported (bool typecastSegmentSupported) @@ -1382,10 +1382,10 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptio public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration : IRecord { public NavigationPropertyRestrictionConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration AddFilterFunctions (string[] filterFunctions) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeepInsertSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration deepInsertSupport) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration deepUpdateSupport) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeleteRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration deleteRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasFilterFunctions (string[] filterFunctions) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasFilterRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration filterRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasInsertRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration insertRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasNavigability (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationType navigability) @@ -1405,17 +1405,17 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRest public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public NavigationRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration AddRestrictedProperties (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration[] restrictedProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasNavigability (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationType navigability) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasRestrictedProperties (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration[] restrictedProperties) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } public class Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public OperationRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) - public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration IsFilterSegmentSupported (bool filterSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1423,8 +1423,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsC public class Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration : IRecord { public PermissionTypeConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration AddScopes (Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration[] scopes) public Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration HasSchemeName (string schemeName) + public Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration HasScopes (Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration[] scopes) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1438,11 +1438,11 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedC public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration : IRecord { public ReadByKeyRestrictionsTypeConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasLongDescription (string longDescription) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration IsReadable (bool readable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1450,11 +1450,11 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsT public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ReadRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasLongDescription (string longDescription) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasReadByKeyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration readByKeyRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration IsReadable (bool readable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1502,9 +1502,9 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfigura public class Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SortRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration AddAscendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] ascendingOnlyProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration AddDescendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] descendingOnlyProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration AddNonSortableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonSortableProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration HasAscendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] ascendingOnlyProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration HasDescendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] descendingOnlyProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration HasNonSortableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonSortableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration IsSortable (bool sortable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1512,14 +1512,14 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfig public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SupportedFormatsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration AddSupportedFormats (string[] supportedFormats) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration HasSupportedFormats (string[] supportedFormats) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SupportedMetadataFormatsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration AddSupportedMetadataFormats (string[] supportedMetadataFormats) + public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration HasSupportedMetadataFormats (string[] supportedMetadataFormats) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1533,13 +1533,13 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfigurat public class Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public UpdateRestrictionsConfiguration () - public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) - public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) - public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddNonUpdatableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonUpdatableNavigationProperties) - public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration AddPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasMaxLevels (int maxLevels) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasNonUpdatableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonUpdatableNavigationProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration queryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsDeltaUpdateSupported (bool deltaUpdateSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsFilterSegmentSupported (bool filterSegmentSupported) From e4a6027b18a37dd68c2cdb9a27bfa2d979632134 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Tue, 21 Jul 2020 15:23:05 +0300 Subject: [PATCH 22/29] Adding fluent complex property configuration. --- .../Microsoft.OData.ModelBuilder.xml | 303 ++++++++++++++++++ .../V1/CallbackSupportedConfiguration.cs | 11 + ...ectionPropertyRestrictionsConfiguration.cs | 11 + ...onPropertyRestrictionsTypeConfiguration.cs | 44 +++ .../V1/CustomHeadersConfiguration.cs | 11 + .../V1/CustomParameterConfiguration.cs | 11 + .../V1/CustomQueryOptionsConfiguration.cs | 12 + .../V1/DeleteRestrictionsConfiguration.cs | 33 ++ .../V1/FilterRestrictionsConfiguration.cs | 11 + .../V1/InsertRestrictionsConfiguration.cs | 44 +++ ...igationPropertyRestrictionConfiguration.cs | 110 +++++++ .../V1/NavigationRestrictionsConfiguration.cs | 11 + .../V1/OperationRestrictionsConfiguration.cs | 33 ++ .../V1/PermissionTypeConfiguration.cs | 11 + .../ReadByKeyRestrictionsTypeConfiguration.cs | 33 ++ .../V1/ReadRestrictionsConfiguration.cs | 45 +++ .../V1/UpdateRestrictionsConfiguration.cs | 44 +++ .../VocabularyTermConfigurationExtensions.tt | 20 ++ ...Microsoft.OData.ModelBuilder.PublicApi.bsl | 43 +++ .../DeleteRestrictionsConfigurationTests.cs | 10 +- 20 files changed, 845 insertions(+), 6 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml index ad30626..41b4191 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml @@ -5322,6 +5322,13 @@ Creates a new instance of + + + List of supported callback protocols, e.g. `http` or `wss` + + The configuration to set + + List of supported callback protocols, e.g. `http` or `wss` @@ -5378,6 +5385,13 @@ Creates a new instance of + + + Describes restrictions on operations applied to collection-valued structural properties + + The configuration to set + + Describes restrictions on operations applied to collection-valued structural properties @@ -5413,6 +5427,13 @@ The value(s) to set + + + Restrictions on filter expressions + + The configuration to set + + Restrictions on filter expressions @@ -5420,6 +5441,13 @@ The value to set + + + Restrictions on search expressions + + The configuration to set + + Restrictions on search expressions @@ -5427,6 +5455,13 @@ The value to set + + + Restrictions on orderby expressions + + The configuration to set + + Restrictions on orderby expressions @@ -5448,6 +5483,13 @@ The value to set + + + Support for $select + + The configuration to set + + Support for $select @@ -5604,6 +5646,13 @@ Creates a new instance of + + + Custom headers that are supported/required for the annotated resource + + The configuration to set + + Custom headers that are supported/required for the annotated resource @@ -5653,6 +5702,13 @@ The value to set + + + Example values for the custom parameter + + The configuration to set + + Example values for the custom parameter @@ -5674,6 +5730,14 @@ Creates a new instance of + + + Custom query options that are supported/required for the annotated resource + If the entity container is annotated, the query option is supported/required by all resources in that container. + + The configuration to set + + Custom query options that are supported/required for the annotated resource @@ -5784,6 +5848,13 @@ The value to set + + + Required permissions. One of the specified sets of scopes is required to perform the delete. + + The configuration to set + + Required permissions. One of the specified sets of scopes is required to perform the delete. @@ -5791,6 +5862,13 @@ The value(s) to set + + + Supported or required custom headers + + The configuration to set + + Supported or required custom headers @@ -5798,6 +5876,13 @@ The value(s) to set + + + Supported or required custom query options + + The configuration to set + + Supported or required custom query options @@ -5950,6 +6035,13 @@ The value(s) to set + + + These properties only allow a subset of filter expressions. A valid filter expression for a single property can be enclosed in parentheses and combined by `and` with valid expressions for other properties. + + The configuration to set + + These properties only allow a subset of filter expressions. A valid filter expression for a single property can be enclosed in parentheses and combined by `and` with valid expressions for other properties. @@ -6032,6 +6124,13 @@ The value to set + + + Required permissions. One of the specified sets of scopes is required to perform the insert. + + The configuration to set + + Required permissions. One of the specified sets of scopes is required to perform the insert. @@ -6039,6 +6138,13 @@ The value(s) to set + + + Support for query options with insert requests + + The configuration to set + + Support for query options with insert requests @@ -6046,6 +6152,13 @@ The value to set + + + Supported or required custom headers + + The configuration to set + + Supported or required custom headers @@ -6053,6 +6166,13 @@ The value(s) to set + + + Supported or required custom query options + + The configuration to set + + Supported or required custom query options @@ -6234,6 +6354,13 @@ The value(s) to set + + + Restrictions on filter expressions + + The configuration to set + + Restrictions on filter expressions @@ -6241,6 +6368,13 @@ The value to set + + + Restrictions on search expressions + + The configuration to set + + Restrictions on search expressions @@ -6248,6 +6382,13 @@ The value to set + + + Restrictions on orderby expressions + + The configuration to set + + Restrictions on orderby expressions @@ -6269,6 +6410,13 @@ The value to set + + + Support for $select + + The configuration to set + + Support for $select @@ -6283,6 +6431,13 @@ The value to set + + + Restrictions on insert operations + + The configuration to set + + Restrictions on insert operations @@ -6290,6 +6445,13 @@ The value to set + + + Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + + The configuration to set + + Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) @@ -6297,6 +6459,13 @@ The value to set + + + Restrictions on update operations + + The configuration to set + + Restrictions on update operations @@ -6304,6 +6473,13 @@ The value to set + + + Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + + The configuration to set + + Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) @@ -6311,6 +6487,13 @@ The value to set + + + Restrictions on delete operations + + The configuration to set + + Restrictions on delete operations @@ -6325,6 +6508,13 @@ The value to set + + + Restrictions for retrieving entities + + The configuration to set + + Restrictions for retrieving entities @@ -6353,6 +6543,13 @@ The value to set + + + List of navigation properties with restrictions + + The configuration to set + + List of navigation properties with restrictions @@ -6400,6 +6597,13 @@ The value to set + + + Required permissions. One of the specified sets of scopes is required to invoke an action or function + + The configuration to set + + Required permissions. One of the specified sets of scopes is required to invoke an action or function @@ -6407,6 +6611,13 @@ The value(s) to set + + + Supported or required custom headers + + The configuration to set + + Supported or required custom headers @@ -6414,6 +6625,13 @@ The value(s) to set + + + Supported or required custom query options + + The configuration to set + + Supported or required custom query options @@ -6441,6 +6659,13 @@ The value to set + + + List of scopes that can provide access to the resource + + The configuration to set + + List of scopes that can provide access to the resource @@ -6488,6 +6713,13 @@ The value to set + + + Required permissions. One of the specified sets of scopes is required to read. + + The configuration to set + + Required permissions. One of the specified sets of scopes is required to read. @@ -6495,6 +6727,13 @@ The value(s) to set + + + Supported or required custom headers + + The configuration to set + + Supported or required custom headers @@ -6502,6 +6741,13 @@ The value(s) to set + + + Supported or required custom query options + + The configuration to set + + Supported or required custom query options @@ -6543,6 +6789,13 @@ The value to set + + + Required permissions. One of the specified sets of scopes is required to read. + + The configuration to set + + Required permissions. One of the specified sets of scopes is required to read. @@ -6550,6 +6803,13 @@ The value(s) to set + + + Supported or required custom headers + + The configuration to set + + Supported or required custom headers @@ -6557,6 +6817,13 @@ The value(s) to set + + + Supported or required custom query options + + The configuration to set + + Supported or required custom query options @@ -6578,6 +6845,14 @@ The value to set + + + Restrictions for retrieving an entity by key + Only valid when applied to a collection. If a property of `ReadByKeyRestrictions` is not specified, the corresponding property value of `ReadRestrictions` applies. + + The configuration to set + + Restrictions for retrieving an entity by key @@ -6942,6 +7217,13 @@ The value to set + + + Required permissions. One of the specified sets of scopes is required to perform the update. + + The configuration to set + + Required permissions. One of the specified sets of scopes is required to perform the update. @@ -6949,6 +7231,13 @@ The value(s) to set + + + Support for query options with update requests + + The configuration to set + + Support for query options with update requests @@ -6956,6 +7245,13 @@ The value to set + + + Supported or required custom headers + + The configuration to set + + Supported or required custom headers @@ -6963,6 +7259,13 @@ The value(s) to set + + + Supported or required custom query options + + The configuration to set + + Supported or required custom query options diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs index f6401b7..c4594a1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs @@ -25,6 +25,17 @@ public CallbackSupportedConfiguration() { } + /// + /// List of supported callback protocols, e.g. `http` or `wss` + /// + /// The configuration to set + /// + public CallbackSupportedConfiguration HasCallbackProtocols(Func callbackProtocolsConfiguration) + { + var callbackProtocols = callbackProtocolsConfiguration?.Invoke(new CallbackProtocolConfiguration()); + return HasCallbackProtocols(callbackProtocols); + } + /// /// List of supported callback protocols, e.g. `http` or `wss` /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs index 7b6f2e9..16eddd5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -25,6 +25,17 @@ public CollectionPropertyRestrictionsConfiguration() { } + /// + /// Describes restrictions on operations applied to collection-valued structural properties + /// + /// The configuration to set + /// + public CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions(Func collectionPropertyRestrictionsConfiguration) + { + var collectionPropertyRestrictions = collectionPropertyRestrictionsConfiguration?.Invoke(new CollectionPropertyRestrictionsTypeConfiguration()); + return HasCollectionPropertyRestrictions(collectionPropertyRestrictions); + } + /// /// Describes restrictions on operations applied to collection-valued structural properties /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs index 11b9198..890dfbc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -57,6 +57,17 @@ public CollectionPropertyRestrictionsTypeConfiguration HasFilterFunctions(params return this; } + /// + /// Restrictions on filter expressions + /// + /// The configuration to set + /// + public CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions(Func filterRestrictionsConfiguration) + { + var filterRestrictions = filterRestrictionsConfiguration?.Invoke(new FilterRestrictionsConfiguration()); + return HasFilterRestrictions(filterRestrictions); + } + /// /// Restrictions on filter expressions /// @@ -68,6 +79,17 @@ public CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions(Fil return this; } + /// + /// Restrictions on search expressions + /// + /// The configuration to set + /// + public CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions(Func searchRestrictionsConfiguration) + { + var searchRestrictions = searchRestrictionsConfiguration?.Invoke(new SearchRestrictionsConfiguration()); + return HasSearchRestrictions(searchRestrictions); + } + /// /// Restrictions on search expressions /// @@ -79,6 +101,17 @@ public CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions(Sea return this; } + /// + /// Restrictions on orderby expressions + /// + /// The configuration to set + /// + public CollectionPropertyRestrictionsTypeConfiguration HasSortRestrictions(Func sortRestrictionsConfiguration) + { + var sortRestrictions = sortRestrictionsConfiguration?.Invoke(new SortRestrictionsConfiguration()); + return HasSortRestrictions(sortRestrictions); + } + /// /// Restrictions on orderby expressions /// @@ -112,6 +145,17 @@ public CollectionPropertyRestrictionsTypeConfiguration IsSkipSupported(bool skip return this; } + /// + /// Support for $select + /// + /// The configuration to set + /// + public CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport(Func selectSupportConfiguration) + { + var selectSupport = selectSupportConfiguration?.Invoke(new SelectSupportConfiguration()); + return HasSelectSupport(selectSupport); + } + /// /// Support for $select /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs index e7cec5f..0c88551 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs @@ -25,6 +25,17 @@ public CustomHeadersConfiguration() { } + /// + /// Custom headers that are supported/required for the annotated resource + /// + /// The configuration to set + /// + public CustomHeadersConfiguration HasCustomHeaders(Func customHeadersConfiguration) + { + var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomHeaders(customHeaders); + } + /// /// Custom headers that are supported/required for the annotated resource /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs index 34f4fcf..98b62aa 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs @@ -73,6 +73,17 @@ public CustomParameterConfiguration IsRequired(bool required) return this; } + /// + /// Example values for the custom parameter + /// + /// The configuration to set + /// + public CustomParameterConfiguration HasExampleValues(Func exampleValuesConfiguration) + { + var exampleValues = exampleValuesConfiguration?.Invoke(new Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration()); + return HasExampleValues(exampleValues); + } + /// /// Example values for the custom parameter /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs index 0e2893e..aef756b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -26,6 +26,18 @@ public CustomQueryOptionsConfiguration() { } + /// + /// Custom query options that are supported/required for the annotated resource + /// If the entity container is annotated, the query option is supported/required by all resources in that container. + /// + /// The configuration to set + /// + public CustomQueryOptionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) + { + var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomQueryOptions(customQueryOptions); + } + /// /// Custom query options that are supported/required for the annotated resource /// If the entity container is annotated, the query option is supported/required by all resources in that container. diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs index 6620db7..a57cb79 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -89,6 +89,17 @@ public DeleteRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS return this; } + /// + /// Required permissions. One of the specified sets of scopes is required to perform the delete. + /// + /// The configuration to set + /// + public DeleteRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) + { + var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); + return HasPermissions(permissions); + } + /// /// Required permissions. One of the specified sets of scopes is required to perform the delete. /// @@ -100,6 +111,17 @@ public DeleteRestrictionsConfiguration HasPermissions(params PermissionTypeConfi return this; } + /// + /// Supported or required custom headers + /// + /// The configuration to set + /// + public DeleteRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) + { + var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomHeaders(customHeaders); + } + /// /// Supported or required custom headers /// @@ -111,6 +133,17 @@ public DeleteRestrictionsConfiguration HasCustomHeaders(params CustomParameterCo return this; } + /// + /// Supported or required custom query options + /// + /// The configuration to set + /// + public DeleteRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) + { + var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomQueryOptions(customQueryOptions); + } + /// /// Supported or required custom query options /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs index 16a84a8..126fb3b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs @@ -74,6 +74,17 @@ public FilterRestrictionsConfiguration HasNonFilterableProperties(params EdmProp return this; } + /// + /// These properties only allow a subset of filter expressions. A valid filter expression for a single property can be enclosed in parentheses and combined by `and` with valid expressions for other properties. + /// + /// The configuration to set + /// + public FilterRestrictionsConfiguration HasFilterExpressionRestrictions(Func filterExpressionRestrictionsConfiguration) + { + var filterExpressionRestrictions = filterExpressionRestrictionsConfiguration?.Invoke(new FilterExpressionRestrictionTypeConfiguration()); + return HasFilterExpressionRestrictions(filterExpressionRestrictions); + } + /// /// These properties only allow a subset of filter expressions. A valid filter expression for a single property can be enclosed in parentheses and combined by `and` with valid expressions for other properties. /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs index 7aa6e51..c5c2d7d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -90,6 +90,17 @@ public InsertRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS return this; } + /// + /// Required permissions. One of the specified sets of scopes is required to perform the insert. + /// + /// The configuration to set + /// + public InsertRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) + { + var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); + return HasPermissions(permissions); + } + /// /// Required permissions. One of the specified sets of scopes is required to perform the insert. /// @@ -101,6 +112,17 @@ public InsertRestrictionsConfiguration HasPermissions(params PermissionTypeConfi return this; } + /// + /// Support for query options with insert requests + /// + /// The configuration to set + /// + public InsertRestrictionsConfiguration HasQueryOptions(Func queryOptionsConfiguration) + { + var queryOptions = queryOptionsConfiguration?.Invoke(new ModificationQueryOptionsConfiguration()); + return HasQueryOptions(queryOptions); + } + /// /// Support for query options with insert requests /// @@ -112,6 +134,17 @@ public InsertRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC return this; } + /// + /// Supported or required custom headers + /// + /// The configuration to set + /// + public InsertRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) + { + var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomHeaders(customHeaders); + } + /// /// Supported or required custom headers /// @@ -123,6 +156,17 @@ public InsertRestrictionsConfiguration HasCustomHeaders(params CustomParameterCo return this; } + /// + /// Supported or required custom query options + /// + /// The configuration to set + /// + public InsertRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) + { + var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomQueryOptions(customQueryOptions); + } + /// /// Supported or required custom query options /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs index 73ac416..bf30e41 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -74,6 +74,17 @@ public NavigationPropertyRestrictionConfiguration HasFilterFunctions(params stri return this; } + /// + /// Restrictions on filter expressions + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasFilterRestrictions(Func filterRestrictionsConfiguration) + { + var filterRestrictions = filterRestrictionsConfiguration?.Invoke(new FilterRestrictionsConfiguration()); + return HasFilterRestrictions(filterRestrictions); + } + /// /// Restrictions on filter expressions /// @@ -85,6 +96,17 @@ public NavigationPropertyRestrictionConfiguration HasFilterRestrictions(FilterRe return this; } + /// + /// Restrictions on search expressions + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasSearchRestrictions(Func searchRestrictionsConfiguration) + { + var searchRestrictions = searchRestrictionsConfiguration?.Invoke(new SearchRestrictionsConfiguration()); + return HasSearchRestrictions(searchRestrictions); + } + /// /// Restrictions on search expressions /// @@ -96,6 +118,17 @@ public NavigationPropertyRestrictionConfiguration HasSearchRestrictions(SearchRe return this; } + /// + /// Restrictions on orderby expressions + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasSortRestrictions(Func sortRestrictionsConfiguration) + { + var sortRestrictions = sortRestrictionsConfiguration?.Invoke(new SortRestrictionsConfiguration()); + return HasSortRestrictions(sortRestrictions); + } + /// /// Restrictions on orderby expressions /// @@ -129,6 +162,17 @@ public NavigationPropertyRestrictionConfiguration IsSkipSupported(bool skipSuppo return this; } + /// + /// Support for $select + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasSelectSupport(Func selectSupportConfiguration) + { + var selectSupport = selectSupportConfiguration?.Invoke(new SelectSupportConfiguration()); + return HasSelectSupport(selectSupport); + } + /// /// Support for $select /// @@ -151,6 +195,17 @@ public NavigationPropertyRestrictionConfiguration IsIndexableByKey(bool indexabl return this; } + /// + /// Restrictions on insert operations + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasInsertRestrictions(Func insertRestrictionsConfiguration) + { + var insertRestrictions = insertRestrictionsConfiguration?.Invoke(new InsertRestrictionsConfiguration()); + return HasInsertRestrictions(insertRestrictions); + } + /// /// Restrictions on insert operations /// @@ -162,6 +217,17 @@ public NavigationPropertyRestrictionConfiguration HasInsertRestrictions(InsertRe return this; } + /// + /// Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasDeepInsertSupport(Func deepInsertSupportConfiguration) + { + var deepInsertSupport = deepInsertSupportConfiguration?.Invoke(new DeepInsertSupportConfiguration()); + return HasDeepInsertSupport(deepInsertSupport); + } + /// /// Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) /// @@ -173,6 +239,17 @@ public NavigationPropertyRestrictionConfiguration HasDeepInsertSupport(DeepInser return this; } + /// + /// Restrictions on update operations + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasUpdateRestrictions(Func updateRestrictionsConfiguration) + { + var updateRestrictions = updateRestrictionsConfiguration?.Invoke(new UpdateRestrictionsConfiguration()); + return HasUpdateRestrictions(updateRestrictions); + } + /// /// Restrictions on update operations /// @@ -184,6 +261,17 @@ public NavigationPropertyRestrictionConfiguration HasUpdateRestrictions(UpdateRe return this; } + /// + /// Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport(Func deepUpdateSupportConfiguration) + { + var deepUpdateSupport = deepUpdateSupportConfiguration?.Invoke(new DeepUpdateSupportConfiguration()); + return HasDeepUpdateSupport(deepUpdateSupport); + } + /// /// Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) /// @@ -195,6 +283,17 @@ public NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport(DeepUpdat return this; } + /// + /// Restrictions on delete operations + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasDeleteRestrictions(Func deleteRestrictionsConfiguration) + { + var deleteRestrictions = deleteRestrictionsConfiguration?.Invoke(new DeleteRestrictionsConfiguration()); + return HasDeleteRestrictions(deleteRestrictions); + } + /// /// Restrictions on delete operations /// @@ -217,6 +316,17 @@ public NavigationPropertyRestrictionConfiguration IsOptimisticConcurrencyControl return this; } + /// + /// Restrictions for retrieving entities + /// + /// The configuration to set + /// + public NavigationPropertyRestrictionConfiguration HasReadRestrictions(Func readRestrictionsConfiguration) + { + var readRestrictions = readRestrictionsConfiguration?.Invoke(new ReadRestrictionsConfiguration()); + return HasReadRestrictions(readRestrictions); + } + /// /// Restrictions for retrieving entities /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs index 9756bde..960d71c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -38,6 +38,17 @@ public NavigationRestrictionsConfiguration HasNavigability(NavigationType naviga return this; } + /// + /// List of navigation properties with restrictions + /// + /// The configuration to set + /// + public NavigationRestrictionsConfiguration HasRestrictedProperties(Func restrictedPropertiesConfiguration) + { + var restrictedProperties = restrictedPropertiesConfiguration?.Invoke(new NavigationPropertyRestrictionConfiguration()); + return HasRestrictedProperties(restrictedProperties); + } + /// /// List of navigation properties with restrictions /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs index dfa7dad..e750084 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -39,6 +39,17 @@ public OperationRestrictionsConfiguration IsFilterSegmentSupported(bool filterSe return this; } + /// + /// Required permissions. One of the specified sets of scopes is required to invoke an action or function + /// + /// The configuration to set + /// + public OperationRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) + { + var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); + return HasPermissions(permissions); + } + /// /// Required permissions. One of the specified sets of scopes is required to invoke an action or function /// @@ -50,6 +61,17 @@ public OperationRestrictionsConfiguration HasPermissions(params PermissionTypeCo return this; } + /// + /// Supported or required custom headers + /// + /// The configuration to set + /// + public OperationRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) + { + var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomHeaders(customHeaders); + } + /// /// Supported or required custom headers /// @@ -61,6 +83,17 @@ public OperationRestrictionsConfiguration HasCustomHeaders(params CustomParamete return this; } + /// + /// Supported or required custom query options + /// + /// The configuration to set + /// + public OperationRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) + { + var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomQueryOptions(customQueryOptions); + } + /// /// Supported or required custom query options /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs index 474106d..446b65e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs @@ -36,6 +36,17 @@ public PermissionTypeConfiguration HasSchemeName(string schemeName) return this; } + /// + /// List of scopes that can provide access to the resource + /// + /// The configuration to set + /// + public PermissionTypeConfiguration HasScopes(Func scopesConfiguration) + { + var scopes = scopesConfiguration?.Invoke(new ScopeTypeConfiguration()); + return HasScopes(scopes); + } + /// /// List of scopes that can provide access to the resource /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index 43bc8b9..4137699 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -40,6 +40,17 @@ public ReadByKeyRestrictionsTypeConfiguration IsReadable(bool readable) return this; } + /// + /// Required permissions. One of the specified sets of scopes is required to read. + /// + /// The configuration to set + /// + public ReadByKeyRestrictionsTypeConfiguration HasPermissions(Func permissionsConfiguration) + { + var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); + return HasPermissions(permissions); + } + /// /// Required permissions. One of the specified sets of scopes is required to read. /// @@ -51,6 +62,17 @@ public ReadByKeyRestrictionsTypeConfiguration HasPermissions(params PermissionTy return this; } + /// + /// Supported or required custom headers + /// + /// The configuration to set + /// + public ReadByKeyRestrictionsTypeConfiguration HasCustomHeaders(Func customHeadersConfiguration) + { + var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomHeaders(customHeaders); + } + /// /// Supported or required custom headers /// @@ -62,6 +84,17 @@ public ReadByKeyRestrictionsTypeConfiguration HasCustomHeaders(params CustomPara return this; } + /// + /// Supported or required custom query options + /// + /// The configuration to set + /// + public ReadByKeyRestrictionsTypeConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) + { + var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomQueryOptions(customQueryOptions); + } + /// /// Supported or required custom query options /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs index e02aae8..27f4c56 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -42,6 +42,17 @@ public ReadRestrictionsConfiguration IsReadable(bool readable) return this; } + /// + /// Required permissions. One of the specified sets of scopes is required to read. + /// + /// The configuration to set + /// + public ReadRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) + { + var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); + return HasPermissions(permissions); + } + /// /// Required permissions. One of the specified sets of scopes is required to read. /// @@ -53,6 +64,17 @@ public ReadRestrictionsConfiguration HasPermissions(params PermissionTypeConfigu return this; } + /// + /// Supported or required custom headers + /// + /// The configuration to set + /// + public ReadRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) + { + var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomHeaders(customHeaders); + } + /// /// Supported or required custom headers /// @@ -64,6 +86,17 @@ public ReadRestrictionsConfiguration HasCustomHeaders(params CustomParameterConf return this; } + /// + /// Supported or required custom query options + /// + /// The configuration to set + /// + public ReadRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) + { + var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomQueryOptions(customQueryOptions); + } + /// /// Supported or required custom query options /// @@ -97,6 +130,18 @@ public ReadRestrictionsConfiguration HasLongDescription(string longDescription) return this; } + /// + /// Restrictions for retrieving an entity by key + /// Only valid when applied to a collection. If a property of `ReadByKeyRestrictions` is not specified, the corresponding property value of `ReadRestrictions` applies. + /// + /// The configuration to set + /// + public ReadRestrictionsConfiguration HasReadByKeyRestrictions(Func readByKeyRestrictionsConfiguration) + { + var readByKeyRestrictions = readByKeyRestrictionsConfiguration?.Invoke(new ReadByKeyRestrictionsTypeConfiguration()); + return HasReadByKeyRestrictions(readByKeyRestrictions); + } + /// /// Restrictions for retrieving an entity by key /// Only valid when applied to a collection. If a property of `ReadByKeyRestrictions` is not specified, the corresponding property value of `ReadRestrictions` applies. diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs index 36d838e..db985c1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -114,6 +114,17 @@ public UpdateRestrictionsConfiguration HasMaxLevels(int maxLevels) return this; } + /// + /// Required permissions. One of the specified sets of scopes is required to perform the update. + /// + /// The configuration to set + /// + public UpdateRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) + { + var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); + return HasPermissions(permissions); + } + /// /// Required permissions. One of the specified sets of scopes is required to perform the update. /// @@ -125,6 +136,17 @@ public UpdateRestrictionsConfiguration HasPermissions(params PermissionTypeConfi return this; } + /// + /// Support for query options with update requests + /// + /// The configuration to set + /// + public UpdateRestrictionsConfiguration HasQueryOptions(Func queryOptionsConfiguration) + { + var queryOptions = queryOptionsConfiguration?.Invoke(new ModificationQueryOptionsConfiguration()); + return HasQueryOptions(queryOptions); + } + /// /// Support for query options with update requests /// @@ -136,6 +158,17 @@ public UpdateRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC return this; } + /// + /// Supported or required custom headers + /// + /// The configuration to set + /// + public UpdateRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) + { + var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomHeaders(customHeaders); + } + /// /// Supported or required custom headers /// @@ -147,6 +180,17 @@ public UpdateRestrictionsConfiguration HasCustomHeaders(params CustomParameterCo return this; } + /// + /// Supported or required custom query options + /// + /// The configuration to set + /// + public UpdateRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) + { + var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); + return HasCustomQueryOptions(customQueryOptions); + } + /// /// Supported or required custom query options /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt index b01dee4..2886d7c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt @@ -412,6 +412,7 @@ using Microsoft.OData.Edm.Vocabularies; var clrType = GetClrType(actualType, false); var name = fullName.Substring(fullName.LastIndexOf('.') + 1); var camelName = CamelCase(name); + var isComplexElement = false; if (actualType.TypeKind == EdmTypeKind.Complex && actualType is IEdmSchemaElement element) { @@ -420,6 +421,25 @@ using Microsoft.OData.Edm.Vocabularies; { clrType = typeName + "." + clrType; } + + isComplexElement = typeKind == EdmTypeKind.Collection || !allowRecurse; + } + + if (isComplexElement) + { +#> + + /// + <#+ ProcessSummary(description, " "); #> + /// + /// The configuration to set + /// + public <#=returnType #> Has<#= name #>(Func<<#= clrType #>, <#= clrType #>> <#= camelName #>Configuration) + { + var <#= camelName #> = <#= camelName #>Configuration?.Invoke(new <#= clrType #>()); + return Has<#= name #>(<#= camelName #>); + } +<#+ } if (typeKind == EdmTypeKind.Collection) diff --git a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl index 700809e..e7e4d14 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl +++ b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl @@ -1162,6 +1162,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfi public CallbackSupportedConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration HasCallbackProtocols (Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration[] callbackProtocols) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration HasCallbackProtocols (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration]] callbackProtocolsConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1178,6 +1179,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRest public CollectionPropertyRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration]] collectionPropertyRestrictionsConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1187,9 +1189,13 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRest public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasCollectionProperty (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression collectionProperty) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasFilterFunctions (string[] filterFunctions) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration filterRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration]] filterRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration searchRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration]] searchRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration selectSupport) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration]] selectSupportConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSortRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration sortRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration HasSortRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration]] sortRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration IsDeletable (bool deletable) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration IsInsertable (bool insertable) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration IsSkipSupported (bool skipSupported) @@ -1232,6 +1238,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfigura public CustomHeadersConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1241,6 +1248,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfigu public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasDocumentationURL (string documentationURL) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasExampleValues (Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration[] exampleValues) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasExampleValues (System.Func`2[[Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration],[Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration]] exampleValuesConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration HasName (string name) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration IsRequired (bool required) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1250,6 +1258,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConf public CustomQueryOptionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration HasCustomQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customQueryOptionsConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1273,12 +1282,15 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConf public DeleteRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasCustomQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customQueryOptionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasMaxLevels (int maxLevels) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasNonDeletableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonDeletableNavigationProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasPermissions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration]] permissionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration IsDeletable (bool deletable) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration IsFilterSegmentSupported (bool filterSegmentSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration IsTypecastSegmentSupported (bool typecastSegmentSupported) @@ -1314,6 +1326,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConf public FilterRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasFilterExpressionRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasFilterExpressionRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration]] filterExpressionRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasMaxLevels (int maxLevels) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasNonFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonFilterableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasRequiredProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] requiredProperties) @@ -1333,14 +1346,18 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConf public InsertRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasCustomQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customQueryOptionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasMaxLevels (int maxLevels) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasNonInsertableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonInsertableNavigationProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasNonInsertableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonInsertableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasPermissions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration]] permissionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration queryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration]] queryOptionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration IsInsertable (bool insertable) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration IsTypecastSegmentSupported (bool typecastSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1383,18 +1400,28 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRest public NavigationPropertyRestrictionConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeepInsertSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration deepInsertSupport) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeepInsertSupport (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration]] deepInsertSupportConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration deepUpdateSupport) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration]] deepUpdateSupportConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeleteRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration deleteRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasDeleteRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration]] deleteRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasFilterFunctions (string[] filterFunctions) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasFilterRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration filterRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasFilterRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration]] filterRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasInsertRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration insertRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasInsertRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration]] insertRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasNavigability (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationType navigability) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasNavigationProperty (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression navigationProperty) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasReadRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration readRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasReadRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration]] readRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSearchRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration searchRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSearchRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration]] searchRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSelectSupport (Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration selectSupport) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSelectSupport (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration]] selectSupportConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSortRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration sortRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasSortRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration]] sortRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasUpdateRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration updateRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration HasUpdateRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration]] updateRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration IsIndexableByKey (bool indexableByKey) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration IsOptimisticConcurrencyControl (bool optimisticConcurrencyControl) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration IsSkipSupported (bool skipSupported) @@ -1407,6 +1434,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictions public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasNavigability (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationType navigability) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasRestrictedProperties (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration[] restrictedProperties) + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasRestrictedProperties (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration]] restrictedPropertiesConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1414,8 +1442,11 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsC public OperationRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasCustomQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customQueryOptionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasPermissions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration]] permissionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration IsFilterSegmentSupported (bool filterSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1425,6 +1456,7 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfigur public Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration HasSchemeName (string schemeName) public Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration HasScopes (Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration[] scopes) + public Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration HasScopes (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration]] scopesConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1439,10 +1471,13 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsT public ReadByKeyRestrictionsTypeConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasCustomQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customQueryOptionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration HasPermissions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration]] permissionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration IsReadable (bool readable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1451,11 +1486,15 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfig public ReadRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasCustomQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customQueryOptionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasPermissions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration]] permissionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasReadByKeyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration readByKeyRestrictions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasReadByKeyRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsTypeConfiguration]] readByKeyRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration IsReadable (bool readable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1534,13 +1573,17 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConf public UpdateRestrictionsConfiguration () public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasCustomQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customQueryOptionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasDescription (string description) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasLongDescription (string longDescription) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasMaxLevels (int maxLevels) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasNonUpdatableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonUpdatableNavigationProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasPermissions (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration[] permissions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasPermissions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration]] permissionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration queryOptions) + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration]] queryOptionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsDeltaUpdateSupported (bool deltaUpdateSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsFilterSegmentSupported (bool filterSegmentSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration IsTypecastSegmentSupported (bool typecastSegmentSupported) diff --git a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs index 5752f0d..cfa6776 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs +++ b/test/Microsoft.OData.ModelBuilder.Tests/Vocabularies/Capabilities/DeleteRestrictionsConfigurationTests.cs @@ -86,19 +86,17 @@ public void PermissionsCanBeAddedToEntitySet() { var modelBuilder = new ODataModelBuilder().Add_Customer_EntityType().Add_Customers_EntitySet(); - var deleteRestrictionsBuilder = modelBuilder .EntitySet("Customers") .HasDeleteRestrictions() .IsDeletable(false) .HasDescription(Description) .HasPermissions( - new PermissionTypeConfiguration() + permission => permission .HasSchemeName(SchemeName) - .HasScopes( - new ScopeTypeConfiguration() - .HasScope(CustomerReadWriteAllScope) - .HasRestrictedProperties("*"))) + .HasScopes(scope => scope + .HasScope(CustomerReadWriteAllScope) + .HasRestrictedProperties("*"))) .HasLongDescription(LongDescription); var model = modelBuilder.GetServiceModel(); From 1ebed9b0ebc7c1a2acc0934b6290a8f412da5bda Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Mon, 17 Aug 2020 11:59:17 +0300 Subject: [PATCH 23/29] Updated OData version to 7.7.0 --- .../Microsoft.OData.ModelBuilder.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj index 45e8542..967228d 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj @@ -22,7 +22,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + From 07d7c28dd663b74ed2e73bb97a76f4e9404a6b31 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Mon, 17 Aug 2020 12:00:31 +0300 Subject: [PATCH 24/29] Nuget package reference from template + Complex type configuration do not overwrite previous configs. --- .../V1/CallbackSupportedConfiguration.cs | 5 +- ...ectionPropertyRestrictionsConfiguration.cs | 5 +- ...onPropertyRestrictionsTypeConfiguration.cs | 20 +++++--- .../V1/CustomHeadersConfiguration.cs | 5 +- .../V1/CustomParameterConfiguration.cs | 5 +- .../V1/CustomQueryOptionsConfiguration.cs | 5 +- .../V1/DeleteRestrictionsConfiguration.cs | 15 +++--- .../V1/FilterRestrictionsConfiguration.cs | 5 +- .../V1/InsertRestrictionsConfiguration.cs | 20 +++++--- ...igationPropertyRestrictionConfiguration.cs | 50 +++++++++++-------- .../V1/NavigationRestrictionsConfiguration.cs | 5 +- .../V1/OperationRestrictionsConfiguration.cs | 15 +++--- .../V1/PermissionTypeConfiguration.cs | 5 +- .../ReadByKeyRestrictionsTypeConfiguration.cs | 15 +++--- .../V1/ReadRestrictionsConfiguration.cs | 20 +++++--- .../V1/UpdateRestrictionsConfiguration.cs | 20 +++++--- .../VocabularyTermConfigurationExtensions.tt | 13 +++-- 17 files changed, 139 insertions(+), 89 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs index c4594a1..a1a64c4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs @@ -32,8 +32,9 @@ public CallbackSupportedConfiguration() /// public CallbackSupportedConfiguration HasCallbackProtocols(Func callbackProtocolsConfiguration) { - var callbackProtocols = callbackProtocolsConfiguration?.Invoke(new CallbackProtocolConfiguration()); - return HasCallbackProtocols(callbackProtocols); + var instance = new CallbackProtocolConfiguration(); + instance = callbackProtocolsConfiguration?.Invoke(instance); + return HasCallbackProtocols(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs index 16eddd5..9519c4e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -32,8 +32,9 @@ public CollectionPropertyRestrictionsConfiguration() /// public CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions(Func collectionPropertyRestrictionsConfiguration) { - var collectionPropertyRestrictions = collectionPropertyRestrictionsConfiguration?.Invoke(new CollectionPropertyRestrictionsTypeConfiguration()); - return HasCollectionPropertyRestrictions(collectionPropertyRestrictions); + var instance = new CollectionPropertyRestrictionsTypeConfiguration(); + instance = collectionPropertyRestrictionsConfiguration?.Invoke(instance); + return HasCollectionPropertyRestrictions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs index 890dfbc..04e3f74 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsTypeConfiguration.cs @@ -64,8 +64,9 @@ public CollectionPropertyRestrictionsTypeConfiguration HasFilterFunctions(params /// public CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions(Func filterRestrictionsConfiguration) { - var filterRestrictions = filterRestrictionsConfiguration?.Invoke(new FilterRestrictionsConfiguration()); - return HasFilterRestrictions(filterRestrictions); + var instance = _filterRestrictions ?? new FilterRestrictionsConfiguration(); + instance = filterRestrictionsConfiguration?.Invoke(instance); + return HasFilterRestrictions(instance); } /// @@ -86,8 +87,9 @@ public CollectionPropertyRestrictionsTypeConfiguration HasFilterRestrictions(Fil /// public CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions(Func searchRestrictionsConfiguration) { - var searchRestrictions = searchRestrictionsConfiguration?.Invoke(new SearchRestrictionsConfiguration()); - return HasSearchRestrictions(searchRestrictions); + var instance = _searchRestrictions ?? new SearchRestrictionsConfiguration(); + instance = searchRestrictionsConfiguration?.Invoke(instance); + return HasSearchRestrictions(instance); } /// @@ -108,8 +110,9 @@ public CollectionPropertyRestrictionsTypeConfiguration HasSearchRestrictions(Sea /// public CollectionPropertyRestrictionsTypeConfiguration HasSortRestrictions(Func sortRestrictionsConfiguration) { - var sortRestrictions = sortRestrictionsConfiguration?.Invoke(new SortRestrictionsConfiguration()); - return HasSortRestrictions(sortRestrictions); + var instance = _sortRestrictions ?? new SortRestrictionsConfiguration(); + instance = sortRestrictionsConfiguration?.Invoke(instance); + return HasSortRestrictions(instance); } /// @@ -152,8 +155,9 @@ public CollectionPropertyRestrictionsTypeConfiguration IsSkipSupported(bool skip /// public CollectionPropertyRestrictionsTypeConfiguration HasSelectSupport(Func selectSupportConfiguration) { - var selectSupport = selectSupportConfiguration?.Invoke(new SelectSupportConfiguration()); - return HasSelectSupport(selectSupport); + var instance = _selectSupport ?? new SelectSupportConfiguration(); + instance = selectSupportConfiguration?.Invoke(instance); + return HasSelectSupport(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs index 0c88551..91f5046 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs @@ -32,8 +32,9 @@ public CustomHeadersConfiguration() /// public CustomHeadersConfiguration HasCustomHeaders(Func customHeadersConfiguration) { - var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomHeaders(customHeaders); + var instance = new CustomParameterConfiguration(); + instance = customHeadersConfiguration?.Invoke(instance); + return HasCustomHeaders(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs index 98b62aa..5235293 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomParameterConfiguration.cs @@ -80,8 +80,9 @@ public CustomParameterConfiguration IsRequired(bool required) /// public CustomParameterConfiguration HasExampleValues(Func exampleValuesConfiguration) { - var exampleValues = exampleValuesConfiguration?.Invoke(new Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration()); - return HasExampleValues(exampleValues); + var instance = new Microsoft.OData.ModelBuilder.Core.V1.PrimitiveExampleValueConfiguration(); + instance = exampleValuesConfiguration?.Invoke(instance); + return HasExampleValues(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs index aef756b..d9a0003 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -34,8 +34,9 @@ public CustomQueryOptionsConfiguration() /// public CustomQueryOptionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) { - var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomQueryOptions(customQueryOptions); + var instance = new CustomParameterConfiguration(); + instance = customQueryOptionsConfiguration?.Invoke(instance); + return HasCustomQueryOptions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs index a57cb79..f3b9b88 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -96,8 +96,9 @@ public DeleteRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS /// public DeleteRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) { - var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); - return HasPermissions(permissions); + var instance = new PermissionTypeConfiguration(); + instance = permissionsConfiguration?.Invoke(instance); + return HasPermissions(instance); } /// @@ -118,8 +119,9 @@ public DeleteRestrictionsConfiguration HasPermissions(params PermissionTypeConfi /// public DeleteRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) { - var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomHeaders(customHeaders); + var instance = new CustomParameterConfiguration(); + instance = customHeadersConfiguration?.Invoke(instance); + return HasCustomHeaders(instance); } /// @@ -140,8 +142,9 @@ public DeleteRestrictionsConfiguration HasCustomHeaders(params CustomParameterCo /// public DeleteRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) { - var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomQueryOptions(customQueryOptions); + var instance = new CustomParameterConfiguration(); + instance = customQueryOptionsConfiguration?.Invoke(instance); + return HasCustomQueryOptions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs index 126fb3b..d4fad18 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs @@ -81,8 +81,9 @@ public FilterRestrictionsConfiguration HasNonFilterableProperties(params EdmProp /// public FilterRestrictionsConfiguration HasFilterExpressionRestrictions(Func filterExpressionRestrictionsConfiguration) { - var filterExpressionRestrictions = filterExpressionRestrictionsConfiguration?.Invoke(new FilterExpressionRestrictionTypeConfiguration()); - return HasFilterExpressionRestrictions(filterExpressionRestrictions); + var instance = new FilterExpressionRestrictionTypeConfiguration(); + instance = filterExpressionRestrictionsConfiguration?.Invoke(instance); + return HasFilterExpressionRestrictions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs index c5c2d7d..3b4a932 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -97,8 +97,9 @@ public InsertRestrictionsConfiguration IsTypecastSegmentSupported(bool typecastS /// public InsertRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) { - var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); - return HasPermissions(permissions); + var instance = new PermissionTypeConfiguration(); + instance = permissionsConfiguration?.Invoke(instance); + return HasPermissions(instance); } /// @@ -119,8 +120,9 @@ public InsertRestrictionsConfiguration HasPermissions(params PermissionTypeConfi /// public InsertRestrictionsConfiguration HasQueryOptions(Func queryOptionsConfiguration) { - var queryOptions = queryOptionsConfiguration?.Invoke(new ModificationQueryOptionsConfiguration()); - return HasQueryOptions(queryOptions); + var instance = _queryOptions ?? new ModificationQueryOptionsConfiguration(); + instance = queryOptionsConfiguration?.Invoke(instance); + return HasQueryOptions(instance); } /// @@ -141,8 +143,9 @@ public InsertRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// public InsertRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) { - var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomHeaders(customHeaders); + var instance = new CustomParameterConfiguration(); + instance = customHeadersConfiguration?.Invoke(instance); + return HasCustomHeaders(instance); } /// @@ -163,8 +166,9 @@ public InsertRestrictionsConfiguration HasCustomHeaders(params CustomParameterCo /// public InsertRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) { - var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomQueryOptions(customQueryOptions); + var instance = new CustomParameterConfiguration(); + instance = customQueryOptionsConfiguration?.Invoke(instance); + return HasCustomQueryOptions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs index bf30e41..c8173cc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -81,8 +81,9 @@ public NavigationPropertyRestrictionConfiguration HasFilterFunctions(params stri /// public NavigationPropertyRestrictionConfiguration HasFilterRestrictions(Func filterRestrictionsConfiguration) { - var filterRestrictions = filterRestrictionsConfiguration?.Invoke(new FilterRestrictionsConfiguration()); - return HasFilterRestrictions(filterRestrictions); + var instance = _filterRestrictions ?? new FilterRestrictionsConfiguration(); + instance = filterRestrictionsConfiguration?.Invoke(instance); + return HasFilterRestrictions(instance); } /// @@ -103,8 +104,9 @@ public NavigationPropertyRestrictionConfiguration HasFilterRestrictions(FilterRe /// public NavigationPropertyRestrictionConfiguration HasSearchRestrictions(Func searchRestrictionsConfiguration) { - var searchRestrictions = searchRestrictionsConfiguration?.Invoke(new SearchRestrictionsConfiguration()); - return HasSearchRestrictions(searchRestrictions); + var instance = _searchRestrictions ?? new SearchRestrictionsConfiguration(); + instance = searchRestrictionsConfiguration?.Invoke(instance); + return HasSearchRestrictions(instance); } /// @@ -125,8 +127,9 @@ public NavigationPropertyRestrictionConfiguration HasSearchRestrictions(SearchRe /// public NavigationPropertyRestrictionConfiguration HasSortRestrictions(Func sortRestrictionsConfiguration) { - var sortRestrictions = sortRestrictionsConfiguration?.Invoke(new SortRestrictionsConfiguration()); - return HasSortRestrictions(sortRestrictions); + var instance = _sortRestrictions ?? new SortRestrictionsConfiguration(); + instance = sortRestrictionsConfiguration?.Invoke(instance); + return HasSortRestrictions(instance); } /// @@ -169,8 +172,9 @@ public NavigationPropertyRestrictionConfiguration IsSkipSupported(bool skipSuppo /// public NavigationPropertyRestrictionConfiguration HasSelectSupport(Func selectSupportConfiguration) { - var selectSupport = selectSupportConfiguration?.Invoke(new SelectSupportConfiguration()); - return HasSelectSupport(selectSupport); + var instance = _selectSupport ?? new SelectSupportConfiguration(); + instance = selectSupportConfiguration?.Invoke(instance); + return HasSelectSupport(instance); } /// @@ -202,8 +206,9 @@ public NavigationPropertyRestrictionConfiguration IsIndexableByKey(bool indexabl /// public NavigationPropertyRestrictionConfiguration HasInsertRestrictions(Func insertRestrictionsConfiguration) { - var insertRestrictions = insertRestrictionsConfiguration?.Invoke(new InsertRestrictionsConfiguration()); - return HasInsertRestrictions(insertRestrictions); + var instance = _insertRestrictions ?? new InsertRestrictionsConfiguration(); + instance = insertRestrictionsConfiguration?.Invoke(instance); + return HasInsertRestrictions(instance); } /// @@ -224,8 +229,9 @@ public NavigationPropertyRestrictionConfiguration HasInsertRestrictions(InsertRe /// public NavigationPropertyRestrictionConfiguration HasDeepInsertSupport(Func deepInsertSupportConfiguration) { - var deepInsertSupport = deepInsertSupportConfiguration?.Invoke(new DeepInsertSupportConfiguration()); - return HasDeepInsertSupport(deepInsertSupport); + var instance = _deepInsertSupport ?? new DeepInsertSupportConfiguration(); + instance = deepInsertSupportConfiguration?.Invoke(instance); + return HasDeepInsertSupport(instance); } /// @@ -246,8 +252,9 @@ public NavigationPropertyRestrictionConfiguration HasDeepInsertSupport(DeepInser /// public NavigationPropertyRestrictionConfiguration HasUpdateRestrictions(Func updateRestrictionsConfiguration) { - var updateRestrictions = updateRestrictionsConfiguration?.Invoke(new UpdateRestrictionsConfiguration()); - return HasUpdateRestrictions(updateRestrictions); + var instance = _updateRestrictions ?? new UpdateRestrictionsConfiguration(); + instance = updateRestrictionsConfiguration?.Invoke(instance); + return HasUpdateRestrictions(instance); } /// @@ -268,8 +275,9 @@ public NavigationPropertyRestrictionConfiguration HasUpdateRestrictions(UpdateRe /// public NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport(Func deepUpdateSupportConfiguration) { - var deepUpdateSupport = deepUpdateSupportConfiguration?.Invoke(new DeepUpdateSupportConfiguration()); - return HasDeepUpdateSupport(deepUpdateSupport); + var instance = _deepUpdateSupport ?? new DeepUpdateSupportConfiguration(); + instance = deepUpdateSupportConfiguration?.Invoke(instance); + return HasDeepUpdateSupport(instance); } /// @@ -290,8 +298,9 @@ public NavigationPropertyRestrictionConfiguration HasDeepUpdateSupport(DeepUpdat /// public NavigationPropertyRestrictionConfiguration HasDeleteRestrictions(Func deleteRestrictionsConfiguration) { - var deleteRestrictions = deleteRestrictionsConfiguration?.Invoke(new DeleteRestrictionsConfiguration()); - return HasDeleteRestrictions(deleteRestrictions); + var instance = _deleteRestrictions ?? new DeleteRestrictionsConfiguration(); + instance = deleteRestrictionsConfiguration?.Invoke(instance); + return HasDeleteRestrictions(instance); } /// @@ -323,8 +332,9 @@ public NavigationPropertyRestrictionConfiguration IsOptimisticConcurrencyControl /// public NavigationPropertyRestrictionConfiguration HasReadRestrictions(Func readRestrictionsConfiguration) { - var readRestrictions = readRestrictionsConfiguration?.Invoke(new ReadRestrictionsConfiguration()); - return HasReadRestrictions(readRestrictions); + var instance = _readRestrictions ?? new ReadRestrictionsConfiguration(); + instance = readRestrictionsConfiguration?.Invoke(instance); + return HasReadRestrictions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs index 960d71c..987151e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -45,8 +45,9 @@ public NavigationRestrictionsConfiguration HasNavigability(NavigationType naviga /// public NavigationRestrictionsConfiguration HasRestrictedProperties(Func restrictedPropertiesConfiguration) { - var restrictedProperties = restrictedPropertiesConfiguration?.Invoke(new NavigationPropertyRestrictionConfiguration()); - return HasRestrictedProperties(restrictedProperties); + var instance = new NavigationPropertyRestrictionConfiguration(); + instance = restrictedPropertiesConfiguration?.Invoke(instance); + return HasRestrictedProperties(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs index e750084..2bc6d24 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -46,8 +46,9 @@ public OperationRestrictionsConfiguration IsFilterSegmentSupported(bool filterSe /// public OperationRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) { - var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); - return HasPermissions(permissions); + var instance = new PermissionTypeConfiguration(); + instance = permissionsConfiguration?.Invoke(instance); + return HasPermissions(instance); } /// @@ -68,8 +69,9 @@ public OperationRestrictionsConfiguration HasPermissions(params PermissionTypeCo /// public OperationRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) { - var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomHeaders(customHeaders); + var instance = new CustomParameterConfiguration(); + instance = customHeadersConfiguration?.Invoke(instance); + return HasCustomHeaders(instance); } /// @@ -90,8 +92,9 @@ public OperationRestrictionsConfiguration HasCustomHeaders(params CustomParamete /// public OperationRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) { - var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomQueryOptions(customQueryOptions); + var instance = new CustomParameterConfiguration(); + instance = customQueryOptionsConfiguration?.Invoke(instance); + return HasCustomQueryOptions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs index 446b65e..96448d3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/PermissionTypeConfiguration.cs @@ -43,8 +43,9 @@ public PermissionTypeConfiguration HasSchemeName(string schemeName) /// public PermissionTypeConfiguration HasScopes(Func scopesConfiguration) { - var scopes = scopesConfiguration?.Invoke(new ScopeTypeConfiguration()); - return HasScopes(scopes); + var instance = new ScopeTypeConfiguration(); + instance = scopesConfiguration?.Invoke(instance); + return HasScopes(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs index 4137699..c66375e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadByKeyRestrictionsTypeConfiguration.cs @@ -47,8 +47,9 @@ public ReadByKeyRestrictionsTypeConfiguration IsReadable(bool readable) /// public ReadByKeyRestrictionsTypeConfiguration HasPermissions(Func permissionsConfiguration) { - var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); - return HasPermissions(permissions); + var instance = new PermissionTypeConfiguration(); + instance = permissionsConfiguration?.Invoke(instance); + return HasPermissions(instance); } /// @@ -69,8 +70,9 @@ public ReadByKeyRestrictionsTypeConfiguration HasPermissions(params PermissionTy /// public ReadByKeyRestrictionsTypeConfiguration HasCustomHeaders(Func customHeadersConfiguration) { - var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomHeaders(customHeaders); + var instance = new CustomParameterConfiguration(); + instance = customHeadersConfiguration?.Invoke(instance); + return HasCustomHeaders(instance); } /// @@ -91,8 +93,9 @@ public ReadByKeyRestrictionsTypeConfiguration HasCustomHeaders(params CustomPara /// public ReadByKeyRestrictionsTypeConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) { - var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomQueryOptions(customQueryOptions); + var instance = new CustomParameterConfiguration(); + instance = customQueryOptionsConfiguration?.Invoke(instance); + return HasCustomQueryOptions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs index 27f4c56..9fc4309 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -49,8 +49,9 @@ public ReadRestrictionsConfiguration IsReadable(bool readable) /// public ReadRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) { - var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); - return HasPermissions(permissions); + var instance = new PermissionTypeConfiguration(); + instance = permissionsConfiguration?.Invoke(instance); + return HasPermissions(instance); } /// @@ -71,8 +72,9 @@ public ReadRestrictionsConfiguration HasPermissions(params PermissionTypeConfigu /// public ReadRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) { - var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomHeaders(customHeaders); + var instance = new CustomParameterConfiguration(); + instance = customHeadersConfiguration?.Invoke(instance); + return HasCustomHeaders(instance); } /// @@ -93,8 +95,9 @@ public ReadRestrictionsConfiguration HasCustomHeaders(params CustomParameterConf /// public ReadRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) { - var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomQueryOptions(customQueryOptions); + var instance = new CustomParameterConfiguration(); + instance = customQueryOptionsConfiguration?.Invoke(instance); + return HasCustomQueryOptions(instance); } /// @@ -138,8 +141,9 @@ public ReadRestrictionsConfiguration HasLongDescription(string longDescription) /// public ReadRestrictionsConfiguration HasReadByKeyRestrictions(Func readByKeyRestrictionsConfiguration) { - var readByKeyRestrictions = readByKeyRestrictionsConfiguration?.Invoke(new ReadByKeyRestrictionsTypeConfiguration()); - return HasReadByKeyRestrictions(readByKeyRestrictions); + var instance = _readByKeyRestrictions ?? new ReadByKeyRestrictionsTypeConfiguration(); + instance = readByKeyRestrictionsConfiguration?.Invoke(instance); + return HasReadByKeyRestrictions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs index db985c1..d663ac0 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -121,8 +121,9 @@ public UpdateRestrictionsConfiguration HasMaxLevels(int maxLevels) /// public UpdateRestrictionsConfiguration HasPermissions(Func permissionsConfiguration) { - var permissions = permissionsConfiguration?.Invoke(new PermissionTypeConfiguration()); - return HasPermissions(permissions); + var instance = new PermissionTypeConfiguration(); + instance = permissionsConfiguration?.Invoke(instance); + return HasPermissions(instance); } /// @@ -143,8 +144,9 @@ public UpdateRestrictionsConfiguration HasPermissions(params PermissionTypeConfi /// public UpdateRestrictionsConfiguration HasQueryOptions(Func queryOptionsConfiguration) { - var queryOptions = queryOptionsConfiguration?.Invoke(new ModificationQueryOptionsConfiguration()); - return HasQueryOptions(queryOptions); + var instance = _queryOptions ?? new ModificationQueryOptionsConfiguration(); + instance = queryOptionsConfiguration?.Invoke(instance); + return HasQueryOptions(instance); } /// @@ -165,8 +167,9 @@ public UpdateRestrictionsConfiguration HasQueryOptions(ModificationQueryOptionsC /// public UpdateRestrictionsConfiguration HasCustomHeaders(Func customHeadersConfiguration) { - var customHeaders = customHeadersConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomHeaders(customHeaders); + var instance = new CustomParameterConfiguration(); + instance = customHeadersConfiguration?.Invoke(instance); + return HasCustomHeaders(instance); } /// @@ -187,8 +190,9 @@ public UpdateRestrictionsConfiguration HasCustomHeaders(params CustomParameterCo /// public UpdateRestrictionsConfiguration HasCustomQueryOptions(Func customQueryOptionsConfiguration) { - var customQueryOptions = customQueryOptionsConfiguration?.Invoke(new CustomParameterConfiguration()); - return HasCustomQueryOptions(customQueryOptions); + var instance = new CustomParameterConfiguration(); + instance = customQueryOptionsConfiguration?.Invoke(instance); + return HasCustomQueryOptions(instance); } /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt index 2886d7c..fbab07b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt @@ -1,7 +1,7 @@ <#@ template debug="false" hostspecific="true" language="C#" #> <#@ assembly name="System.Core" #> <#@ assembly name="System.Runtime" #> -<#@ assembly name="Microsoft.OData.Edm" #> +<#@ assembly name="$(NuGetPackageRoot)microsoft.odata.edm\7.7.0\lib\net45\Microsoft.OData.Edm.dll" #> <#@ import namespace="System.IO" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Text" #> @@ -427,6 +427,12 @@ using Microsoft.OData.Edm.Vocabularies; if (isComplexElement) { + var configurationInstance = $"new {clrType}()"; + if (typeKind != EdmTypeKind.Collection) + { + configurationInstance = $"_{camelName} ?? {configurationInstance}"; + } + #> /// @@ -436,8 +442,9 @@ using Microsoft.OData.Edm.Vocabularies; /// public <#=returnType #> Has<#= name #>(Func<<#= clrType #>, <#= clrType #>> <#= camelName #>Configuration) { - var <#= camelName #> = <#= camelName #>Configuration?.Invoke(new <#= clrType #>()); - return Has<#= name #>(<#= camelName #>); + var instance = <#= configurationInstance #>; + instance = <#= camelName #>Configuration?.Invoke(instance); + return Has<#= name #>(instance); } <#+ } From 4032a95373044d4aac85bdbd20b92337879e5426 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Mon, 17 Aug 2020 18:25:48 +0300 Subject: [PATCH 25/29] Scopes shortcut + bsl update + odata lib update. --- .../Microsoft.OData.ModelBuilder.csproj | 3 ++- .../Microsoft.OData.ModelBuilder.xml | 13 +++++++++++ ...aryTermConfigurationShortcutsExtensions.cs | 23 +++++++++++++++++++ ...Microsoft.OData.ModelBuilder.PublicApi.bsl | 10 ++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationShortcutsExtensions.cs diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj index 967228d..6ab21e2 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.csproj @@ -23,8 +23,9 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + + diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml index 41b4191..ab5ca90 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml @@ -7567,5 +7567,18 @@ to annotate Collection of annotation configurations + + + Shortcuts for common configurations to be extended in here. + + + + + List of scopes that can provide access to the resource + + + The value(s) to set + + diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationShortcutsExtensions.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationShortcutsExtensions.cs new file mode 100644 index 0000000..7db0c5e --- /dev/null +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationShortcutsExtensions.cs @@ -0,0 +1,23 @@ +using Microsoft.OData.ModelBuilder.Capabilities.V1; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Microsoft.OData.ModelBuilder.Vocabularies +{ + /// + /// Shortcuts for common configurations to be extended in here. + /// + public static class VocabularyTermConfigurationShortcutsExtensions + { + /// + /// List of scopes that can provide access to the resource + /// + /// + /// The value(s) to set + /// + public static PermissionTypeConfiguration HasScopes(this PermissionTypeConfiguration permissionTypeConfiguration, params string[] scopeNames) + => permissionTypeConfiguration?.HasScopes(scopeNames.Select(scope => new ScopeTypeConfiguration().HasScope(scope)).ToArray()); + } +} diff --git a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl index e7e4d14..3f3873d 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl +++ b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl @@ -1070,6 +1070,16 @@ public class Microsoft.OData.ModelBuilder.Conventions.ODataModelConventionSet { public ODataModelConventionSet () } +[ +ExtensionAttribute(), +] +public sealed class Microsoft.OData.ModelBuilder.Vocabularies.VocabularyTermConfigurationShortcutsExtensions { + [ + ExtensionAttribute(), + ] + public static Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration HasScopes (Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfiguration permissionTypeConfiguration, string[] scopeNames) +} + public enum Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelType : int { Advanced = 2 Intermediate = 1 From 3e6a0452bb442ac42ac60cf081807eae3f9eb685 Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 26 Aug 2020 16:15:19 +0300 Subject: [PATCH 26/29] Remove excess enum whitespace. --- .../Vocabularies/Capabilities/V1/ConformanceLevelType.cs | 1 - .../Vocabularies/Capabilities/V1/IsolationLevel.cs | 1 - .../Vocabularies/Capabilities/V1/NavigationType.cs | 1 - .../Vocabularies/Capabilities/V1/SearchExpressions.cs | 1 - .../Vocabularies/VocabularyTermConfigurationExtensions.tt | 4 ++-- 5 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelType.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelType.cs index f3aa8d9..7b6ed18 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelType.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelType.cs @@ -15,7 +15,6 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public enum ConformanceLevelType { - /// /// Minimal conformance level /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationLevel.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationLevel.cs index 7e9c8e3..c949ecc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationLevel.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationLevel.cs @@ -16,7 +16,6 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 [Flags] public enum IsolationLevel { - /// /// All data returned for a request, including multiple requests within a batch or results retrieved across multiple pages, will be consistent as of a single point in time /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationType.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationType.cs index faf6ba5..59cc256 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationType.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationType.cs @@ -15,7 +15,6 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 /// public enum NavigationType { - /// /// Navigation properties can be recursively navigated /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchExpressions.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchExpressions.cs index 58b5c30..dda5f93 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchExpressions.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchExpressions.cs @@ -16,7 +16,6 @@ namespace Microsoft.OData.ModelBuilder.Capabilities.V1 [Flags] public enum SearchExpressions { - /// /// Single search term /// diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt index fbab07b..eb8efef 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt @@ -324,8 +324,8 @@ namespace <#= @namespace #> } #> public enum <#= enumType.Name #> - { -<#+ + {<#+ + foreach (var member in enumType.Members) { #> From c99d81a5db5dd4b2c6d3c3668908ef9e1ff419ca Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 26 Aug 2020 17:35:09 +0300 Subject: [PATCH 27/29] Vocabulary TermName moved from constructor parameter to abstract property. --- .../Microsoft.OData.ModelBuilder.xml | 239 ++++++------------ .../V1/AcceptableEncodingsConfiguration.cs | 9 +- ...tionValuesInQuerySupportedConfiguration.cs | 9 +- ...nchronousRequestsSupportedConfiguration.cs | 9 +- ...chContinueOnErrorSupportedConfiguration.cs | 9 +- .../V1/BatchSupportConfiguration.cs | 9 +- .../V1/BatchSupportedConfiguration.cs | 9 +- .../V1/CallbackSupportedConfiguration.cs | 9 +- .../V1/ChangeTrackingConfiguration.cs | 9 +- ...ectionPropertyRestrictionsConfiguration.cs | 9 +- .../V1/ComputeSupportedConfiguration.cs | 9 +- .../V1/ConformanceLevelConfiguration.cs | 9 +- .../V1/CountRestrictionsConfiguration.cs | 9 +- .../V1/CrossJoinSupportedConfiguration.cs | 9 +- .../V1/CustomHeadersConfiguration.cs | 9 +- .../V1/CustomQueryOptionsConfiguration.cs | 9 +- .../V1/DeepInsertSupportConfiguration.cs | 9 +- .../V1/DeepUpdateSupportConfiguration.cs | 9 +- .../V1/DeleteRestrictionsConfiguration.cs | 9 +- .../V1/ExpandRestrictionsConfiguration.cs | 9 +- .../V1/FilterFunctionsConfiguration.cs | 9 +- .../V1/FilterRestrictionsConfiguration.cs | 9 +- .../V1/IndexableByKeyConfiguration.cs | 9 +- .../V1/InsertRestrictionsConfiguration.cs | 9 +- .../V1/IsolationSupportedConfiguration.cs | 9 +- .../V1/KeyAsSegmentSupportedConfiguration.cs | 9 +- ...diaLocationUpdateSupportedConfiguration.cs | 9 +- .../ModificationQueryOptionsConfiguration.cs | 9 +- .../V1/NavigationRestrictionsConfiguration.cs | 9 +- .../V1/OperationRestrictionsConfiguration.cs | 9 +- .../V1/QuerySegmentSupportedConfiguration.cs | 9 +- .../V1/ReadRestrictionsConfiguration.cs | 9 +- .../V1/SearchRestrictionsConfiguration.cs | 9 +- .../V1/SelectSupportConfiguration.cs | 9 +- .../V1/SkipSupportedConfiguration.cs | 9 +- .../V1/SortRestrictionsConfiguration.cs | 9 +- .../V1/SupportedFormatsConfiguration.cs | 9 +- .../SupportedMetadataFormatsConfiguration.cs | 9 +- .../V1/TopSupportedConfiguration.cs | 9 +- .../V1/UpdateRestrictionsConfiguration.cs | 9 +- .../VocabularyTermConfiguration.cs | 9 +- .../VocabularyTermConfigurationExtensions.tt | 9 +- ...Microsoft.OData.ModelBuilder.PublicApi.bsl | 82 +++++- 43 files changed, 244 insertions(+), 446 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml index ab5ca90..1db2f9a 100644 --- a/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml +++ b/src/Microsoft.OData.ModelBuilder/Microsoft.OData.ModelBuilder.xml @@ -5121,10 +5121,8 @@ List of acceptable compression methods for ($batch) requests, e.g. gzip - - - Creates a new instance of - + + @@ -5141,10 +5139,8 @@ Supports annotation values within system query options - - - Creates a new instance of - + + @@ -5161,10 +5157,8 @@ Service supports the asynchronous request preference - - - Creates a new instance of - + + @@ -5181,10 +5175,8 @@ Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. - - - Creates a new instance of - + + @@ -5201,10 +5193,8 @@ Batch Support for the service - - - Creates a new instance of - + + @@ -5263,10 +5253,8 @@ Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. - - - Creates a new instance of - + + @@ -5317,10 +5305,8 @@ Supports callbacks for the specified protocols - - - Creates a new instance of - + + @@ -5344,10 +5330,8 @@ Change tracking capabilities of this service or entity set - - - Creates a new instance of - + + @@ -5380,10 +5364,8 @@ Describes restrictions on operations applied to collection-valued structural properties - - - Creates a new instance of - + + @@ -5527,10 +5509,8 @@ Supports $compute - - - Creates a new instance of - + + @@ -5547,10 +5527,8 @@ The conformance level achieved by this service - - - Creates a new instance of - + + @@ -5587,10 +5565,8 @@ Restrictions on /$count path suffix and $count=true system query option - - - Creates a new instance of - + + @@ -5621,10 +5597,8 @@ Supports cross joins for the entity sets in this container - - - Creates a new instance of - + + @@ -5641,10 +5615,8 @@ Custom headers that are supported/required for the annotated resource - - - Creates a new instance of - + + @@ -5725,10 +5697,8 @@ If the entity container is annotated, the query option is supported/required by all resources in that container. - - - Creates a new instance of - + + @@ -5754,10 +5724,8 @@ Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) - - - Creates a new instance of - + + @@ -5781,10 +5749,8 @@ Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) - - - Creates a new instance of - + + @@ -5808,10 +5774,8 @@ Restrictions on delete operations - - - Creates a new instance of - + + @@ -5912,10 +5876,8 @@ Restrictions on expand expressions - - - Creates a new instance of - + + @@ -5981,10 +5943,8 @@ If not specified, null, or empty, all functions and operators may be attempted. - - - Creates a new instance of - + + @@ -6002,10 +5962,8 @@ Restrictions on filter expressions - - - Creates a new instance of - + + @@ -6064,10 +6022,8 @@ Supports key values according to OData URL conventions - - - Creates a new instance of - + + @@ -6084,10 +6040,8 @@ Restrictions on insert operations - - - Creates a new instance of - + + @@ -6212,10 +6166,8 @@ Supported odata.isolation levels - - - Creates a new instance of - + + @@ -6232,10 +6184,8 @@ Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection - - - Creates a new instance of - + + @@ -6252,10 +6202,8 @@ Stream property supports update of its media edit URL and/or media read URL - - - Creates a new instance of - + + @@ -6272,10 +6220,8 @@ Support for query options with modification requests (insert, update, action invocation) - - - Creates a new instance of - + + @@ -6531,10 +6477,8 @@ Restrictions specified on an entity set are valid whether the request is directly to the entity set or through a navigation property bound to that entity set. Services can specify a different set of restrictions specific to a path, in which case the more specific restrictions take precedence. - - - Creates a new instance of - + + @@ -6585,10 +6529,8 @@ Restrictions for function or action operation - - - Creates a new instance of - + + @@ -6681,10 +6623,8 @@ Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) - - - Creates a new instance of - + + @@ -6777,10 +6717,8 @@ Restrictions for retrieving a collection of entities, retrieving a singleton instance. - - - Creates a new instance of - + + @@ -6932,10 +6870,8 @@ Restrictions on search expressions - - - Creates a new instance of - + + @@ -6959,10 +6895,8 @@ Support for $select and nested query options within $select - - - Creates a new instance of - + + @@ -7042,10 +6976,8 @@ Supports $skip - - - Creates a new instance of - + + @@ -7062,10 +6994,8 @@ Restrictions on orderby expressions - - - Creates a new instance of - + + @@ -7103,10 +7033,8 @@ Media types of supported formats, including format parameters - - - Creates a new instance of - + + @@ -7123,10 +7051,8 @@ Media types of supported formats for $metadata, including format parameters - - - Creates a new instance of - + + @@ -7143,10 +7069,8 @@ Supports $top - - - Creates a new instance of - + + @@ -7163,10 +7087,8 @@ Restrictions on update operations - - - Creates a new instance of - + + @@ -7333,11 +7255,10 @@ Base vocabulary configuration. - + - Creates a new instance of + The name of the to build. - The name of the being built. diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AcceptableEncodingsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AcceptableEncodingsConfiguration.cs index 1c1909e..02071c2 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AcceptableEncodingsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AcceptableEncodingsConfiguration.cs @@ -17,13 +17,8 @@ public partial class AcceptableEncodingsConfiguration : VocabularyTermConfigurat { private readonly HashSet _acceptableEncodings = new HashSet(); - /// - /// Creates a new instance of - /// - public AcceptableEncodingsConfiguration() - : base("Org.OData.Capabilities.V1.AcceptableEncodings") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.AcceptableEncodings"; /// /// List of acceptable compression methods for ($batch) requests, e.g. gzip diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs index 77c427f..60bddb6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AnnotationValuesInQuerySupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class AnnotationValuesInQuerySupportedConfiguration : VocabularyT { private bool? _annotationValuesInQuerySupported; - /// - /// Creates a new instance of - /// - public AnnotationValuesInQuerySupportedConfiguration() - : base("Org.OData.Capabilities.V1.AnnotationValuesInQuerySupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.AnnotationValuesInQuerySupported"; /// /// Supports annotation values within system query options diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs index f4cd409..340e34c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/AsynchronousRequestsSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class AsynchronousRequestsSupportedConfiguration : VocabularyTerm { private bool? _asynchronousRequestsSupported; - /// - /// Creates a new instance of - /// - public AsynchronousRequestsSupportedConfiguration() - : base("Org.OData.Capabilities.V1.AsynchronousRequestsSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.AsynchronousRequestsSupported"; /// /// Service supports the asynchronous request preference diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs index 4c93dcb..2bf0065 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchContinueOnErrorSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class BatchContinueOnErrorSupportedConfiguration : VocabularyTerm { private bool? _batchContinueOnErrorSupported; - /// - /// Creates a new instance of - /// - public BatchContinueOnErrorSupportedConfiguration() - : base("Org.OData.Capabilities.V1.BatchContinueOnErrorSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.BatchContinueOnErrorSupported"; /// /// Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportConfiguration.cs index 71418e2..ca54c42 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportConfiguration.cs @@ -23,13 +23,8 @@ public partial class BatchSupportConfiguration : VocabularyTermConfiguration private bool? _requestDependencyConditionsSupported; private readonly HashSet _supportedFormats = new HashSet(); - /// - /// Creates a new instance of - /// - public BatchSupportConfiguration() - : base("Org.OData.Capabilities.V1.BatchSupport") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.BatchSupport"; /// /// Service supports requests to $batch diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs index 45c6697..7cefd85 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/BatchSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class BatchSupportedConfiguration : VocabularyTermConfiguration { private bool? _batchSupported; - /// - /// Creates a new instance of - /// - public BatchSupportedConfiguration() - : base("Org.OData.Capabilities.V1.BatchSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.BatchSupported"; /// /// Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs index a1a64c4..76dd3d1 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CallbackSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class CallbackSupportedConfiguration : VocabularyTermConfiguratio { private readonly HashSet _callbackProtocols = new HashSet(); - /// - /// Creates a new instance of - /// - public CallbackSupportedConfiguration() - : base("Org.OData.Capabilities.V1.CallbackSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.CallbackSupported"; /// /// List of supported callback protocols, e.g. `http` or `wss` diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ChangeTrackingConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ChangeTrackingConfiguration.cs index 77b5ef0..1a0a0be 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ChangeTrackingConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ChangeTrackingConfiguration.cs @@ -19,13 +19,8 @@ public partial class ChangeTrackingConfiguration : VocabularyTermConfiguration private readonly HashSet _filterableProperties = new HashSet(); private readonly HashSet _expandableProperties = new HashSet(); - /// - /// Creates a new instance of - /// - public ChangeTrackingConfiguration() - : base("Org.OData.Capabilities.V1.ChangeTracking") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.ChangeTracking"; /// /// This entity set supports the odata.track-changes preference diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs index 9519c4e..4e356a7 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CollectionPropertyRestrictionsConfiguration.cs @@ -17,13 +17,8 @@ public partial class CollectionPropertyRestrictionsConfiguration : VocabularyTer { private readonly HashSet _collectionPropertyRestrictions = new HashSet(); - /// - /// Creates a new instance of - /// - public CollectionPropertyRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.CollectionPropertyRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.CollectionPropertyRestrictions"; /// /// Describes restrictions on operations applied to collection-valued structural properties diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs index 3276fa5..a863dfc 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ComputeSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class ComputeSupportedConfiguration : VocabularyTermConfiguration { private bool? _computeSupported; - /// - /// Creates a new instance of - /// - public ComputeSupportedConfiguration() - : base("Org.OData.Capabilities.V1.ComputeSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.ComputeSupported"; /// /// Supports $compute diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs index defcd9b..ca34197 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs @@ -17,13 +17,8 @@ public partial class ConformanceLevelConfiguration : VocabularyTermConfiguration { private ConformanceLevelType? _conformanceLevel; - /// - /// Creates a new instance of - /// - public ConformanceLevelConfiguration() - : base("Org.OData.Capabilities.V1.ConformanceLevel") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.ConformanceLevel"; /// /// The conformance level achieved by this service diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CountRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CountRestrictionsConfiguration.cs index 8eed671..d5e2c3c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CountRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CountRestrictionsConfiguration.cs @@ -19,13 +19,8 @@ public partial class CountRestrictionsConfiguration : VocabularyTermConfiguratio private readonly HashSet _nonCountableProperties = new HashSet(); private readonly HashSet _nonCountableNavigationProperties = new HashSet(); - /// - /// Creates a new instance of - /// - public CountRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.CountRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.CountRestrictions"; /// /// Entities can be counted diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs index 513d654..66f117b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CrossJoinSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class CrossJoinSupportedConfiguration : VocabularyTermConfigurati { private bool? _crossJoinSupported; - /// - /// Creates a new instance of - /// - public CrossJoinSupportedConfiguration() - : base("Org.OData.Capabilities.V1.CrossJoinSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.CrossJoinSupported"; /// /// Supports cross joins for the entity sets in this container diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs index 91f5046..e1fe14d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomHeadersConfiguration.cs @@ -17,13 +17,8 @@ public partial class CustomHeadersConfiguration : VocabularyTermConfiguration { private readonly HashSet _customHeaders = new HashSet(); - /// - /// Creates a new instance of - /// - public CustomHeadersConfiguration() - : base("Org.OData.Capabilities.V1.CustomHeaders") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.CustomHeaders"; /// /// Custom headers that are supported/required for the annotated resource diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs index d9a0003..f3c6b00 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/CustomQueryOptionsConfiguration.cs @@ -18,13 +18,8 @@ public partial class CustomQueryOptionsConfiguration : VocabularyTermConfigurati { private readonly HashSet _customQueryOptions = new HashSet(); - /// - /// Creates a new instance of - /// - public CustomQueryOptionsConfiguration() - : base("Org.OData.Capabilities.V1.CustomQueryOptions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.CustomQueryOptions"; /// /// Custom query options that are supported/required for the annotated resource diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepInsertSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepInsertSupportConfiguration.cs index fd38efc..8b31aae 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepInsertSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepInsertSupportConfiguration.cs @@ -18,13 +18,8 @@ public partial class DeepInsertSupportConfiguration : VocabularyTermConfiguratio private bool? _supported; private bool? _contentIDSupported; - /// - /// Creates a new instance of - /// - public DeepInsertSupportConfiguration() - : base("Org.OData.Capabilities.V1.DeepInsertSupport") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.DeepInsertSupport"; /// /// Annotation target supports deep inserts diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepUpdateSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepUpdateSupportConfiguration.cs index 1f7fbba..77e049c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepUpdateSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeepUpdateSupportConfiguration.cs @@ -18,13 +18,8 @@ public partial class DeepUpdateSupportConfiguration : VocabularyTermConfiguratio private bool? _supported; private bool? _contentIDSupported; - /// - /// Creates a new instance of - /// - public DeepUpdateSupportConfiguration() - : base("Org.OData.Capabilities.V1.DeepUpdateSupport") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.DeepUpdateSupport"; /// /// Annotation target supports deep updates diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs index f3b9b88..2a33ece 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/DeleteRestrictionsConfiguration.cs @@ -26,13 +26,8 @@ public partial class DeleteRestrictionsConfiguration : VocabularyTermConfigurati private string _description; private string _longDescription; - /// - /// Creates a new instance of - /// - public DeleteRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.DeleteRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.DeleteRestrictions"; /// /// Entities can be deleted diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ExpandRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ExpandRestrictionsConfiguration.cs index f30b8cc..5f559fa 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ExpandRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ExpandRestrictionsConfiguration.cs @@ -20,13 +20,8 @@ public partial class ExpandRestrictionsConfiguration : VocabularyTermConfigurati private readonly HashSet _nonExpandableProperties = new HashSet(); private int? _maxLevels; - /// - /// Creates a new instance of - /// - public ExpandRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.ExpandRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.ExpandRestrictions"; /// /// $expand is supported diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterFunctionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterFunctionsConfiguration.cs index 5e3e776..e4f064d 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterFunctionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterFunctionsConfiguration.cs @@ -18,13 +18,8 @@ public partial class FilterFunctionsConfiguration : VocabularyTermConfiguration { private readonly HashSet _filterFunctions = new HashSet(); - /// - /// Creates a new instance of - /// - public FilterFunctionsConfiguration() - : base("Org.OData.Capabilities.V1.FilterFunctions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.FilterFunctions"; /// /// List of functions and operators supported in filter expressions. diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs index d4fad18..c59a995 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/FilterRestrictionsConfiguration.cs @@ -22,13 +22,8 @@ public partial class FilterRestrictionsConfiguration : VocabularyTermConfigurati private readonly HashSet _filterExpressionRestrictions = new HashSet(); private int? _maxLevels; - /// - /// Creates a new instance of - /// - public FilterRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.FilterRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.FilterRestrictions"; /// /// $filter is supported diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs index 01f3f18..601b6bd 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IndexableByKeyConfiguration.cs @@ -17,13 +17,8 @@ public partial class IndexableByKeyConfiguration : VocabularyTermConfiguration { private bool? _indexableByKey; - /// - /// Creates a new instance of - /// - public IndexableByKeyConfiguration() - : base("Org.OData.Capabilities.V1.IndexableByKey") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.IndexableByKey"; /// /// Supports key values according to OData URL conventions diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs index 3b4a932..1373c2c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/InsertRestrictionsConfiguration.cs @@ -27,13 +27,8 @@ public partial class InsertRestrictionsConfiguration : VocabularyTermConfigurati private string _description; private string _longDescription; - /// - /// Creates a new instance of - /// - public InsertRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.InsertRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.InsertRestrictions"; /// /// Entities can be inserted diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs index 083c164..c931ff6 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class IsolationSupportedConfiguration : VocabularyTermConfigurati { private IsolationLevel? _isolationSupported; - /// - /// Creates a new instance of - /// - public IsolationSupportedConfiguration() - : base("Org.OData.Capabilities.V1.IsolationSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.IsolationSupported"; /// /// Supported odata.isolation levels diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs index 9b57707..225a47c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/KeyAsSegmentSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class KeyAsSegmentSupportedConfiguration : VocabularyTermConfigur { private bool? _keyAsSegmentSupported; - /// - /// Creates a new instance of - /// - public KeyAsSegmentSupportedConfiguration() - : base("Org.OData.Capabilities.V1.KeyAsSegmentSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.KeyAsSegmentSupported"; /// /// Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs index ba75770..4dbb813 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/MediaLocationUpdateSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class MediaLocationUpdateSupportedConfiguration : VocabularyTermC { private bool? _mediaLocationUpdateSupported; - /// - /// Creates a new instance of - /// - public MediaLocationUpdateSupportedConfiguration() - : base("Org.OData.Capabilities.V1.MediaLocationUpdateSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.MediaLocationUpdateSupported"; /// /// Stream property supports update of its media edit URL and/or media read URL diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ModificationQueryOptionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ModificationQueryOptionsConfiguration.cs index 226a6e6..2bff75c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ModificationQueryOptionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ModificationQueryOptionsConfiguration.cs @@ -22,13 +22,8 @@ public partial class ModificationQueryOptionsConfiguration : VocabularyTermConfi private bool? _searchSupported; private bool? _sortSupported; - /// - /// Creates a new instance of - /// - public ModificationQueryOptionsConfiguration() - : base("Org.OData.Capabilities.V1.ModificationQueryOptions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.ModificationQueryOptions"; /// /// Supports $expand with modification requests diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs index 987151e..08f08fa 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -19,13 +19,8 @@ public partial class NavigationRestrictionsConfiguration : VocabularyTermConfigu private NavigationType? _navigability; private readonly HashSet _restrictedProperties = new HashSet(); - /// - /// Creates a new instance of - /// - public NavigationRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.NavigationRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.NavigationRestrictions"; /// /// Default navigability for all navigation properties of the annotation target. Individual navigation properties can override this value via `RestrictedProperties/Navigability`. diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs index 2bc6d24..9fd4471 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/OperationRestrictionsConfiguration.cs @@ -20,13 +20,8 @@ public partial class OperationRestrictionsConfiguration : VocabularyTermConfigur private readonly HashSet _customHeaders = new HashSet(); private readonly HashSet _customQueryOptions = new HashSet(); - /// - /// Creates a new instance of - /// - public OperationRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.OperationRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.OperationRestrictions"; /// /// Bound action or function can be invoked on a collection-valued binding parameter path with a `/$filter(...)` segment diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs index 977442c..afe175b 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/QuerySegmentSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class QuerySegmentSupportedConfiguration : VocabularyTermConfigur { private bool? _querySegmentSupported; - /// - /// Creates a new instance of - /// - public QuerySegmentSupportedConfiguration() - : base("Org.OData.Capabilities.V1.QuerySegmentSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.QuerySegmentSupported"; /// /// Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs index 9fc4309..b52bf00 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ReadRestrictionsConfiguration.cs @@ -23,13 +23,8 @@ public partial class ReadRestrictionsConfiguration : VocabularyTermConfiguration private string _longDescription; private ReadByKeyRestrictionsTypeConfiguration _readByKeyRestrictions; - /// - /// Creates a new instance of - /// - public ReadRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.ReadRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.ReadRestrictions"; /// /// Entities can be retrieved diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs index 133b730..e1544ef 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs @@ -18,13 +18,8 @@ public partial class SearchRestrictionsConfiguration : VocabularyTermConfigurati private bool? _searchable; private SearchExpressions? _unsupportedExpressions; - /// - /// Creates a new instance of - /// - public SearchRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.SearchRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.SearchRestrictions"; /// /// $search is supported diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SelectSupportConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SelectSupportConfiguration.cs index 82174eb..e3f9be7 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SelectSupportConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SelectSupportConfiguration.cs @@ -26,13 +26,8 @@ public partial class SelectSupportConfiguration : VocabularyTermConfiguration private bool? _countable; private bool? _sortable; - /// - /// Creates a new instance of - /// - public SelectSupportConfiguration() - : base("Org.OData.Capabilities.V1.SelectSupport") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.SelectSupport"; /// /// Supports $select diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs index d14128f..8d6dd6e 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SkipSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class SkipSupportedConfiguration : VocabularyTermConfiguration { private bool? _skipSupported; - /// - /// Creates a new instance of - /// - public SkipSupportedConfiguration() - : base("Org.OData.Capabilities.V1.SkipSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.SkipSupported"; /// /// Supports $skip diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SortRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SortRestrictionsConfiguration.cs index 5650dbf..e8be097 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SortRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SortRestrictionsConfiguration.cs @@ -20,13 +20,8 @@ public partial class SortRestrictionsConfiguration : VocabularyTermConfiguration private readonly HashSet _descendingOnlyProperties = new HashSet(); private readonly HashSet _nonSortableProperties = new HashSet(); - /// - /// Creates a new instance of - /// - public SortRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.SortRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.SortRestrictions"; /// /// $orderby is supported diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedFormatsConfiguration.cs index 30a51fc..9e41dc4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedFormatsConfiguration.cs @@ -17,13 +17,8 @@ public partial class SupportedFormatsConfiguration : VocabularyTermConfiguration { private readonly HashSet _supportedFormats = new HashSet(); - /// - /// Creates a new instance of - /// - public SupportedFormatsConfiguration() - : base("Org.OData.Capabilities.V1.SupportedFormats") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.SupportedFormats"; /// /// Media types of supported formats, including format parameters diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs index fc0b873..b388981 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SupportedMetadataFormatsConfiguration.cs @@ -17,13 +17,8 @@ public partial class SupportedMetadataFormatsConfiguration : VocabularyTermConfi { private readonly HashSet _supportedMetadataFormats = new HashSet(); - /// - /// Creates a new instance of - /// - public SupportedMetadataFormatsConfiguration() - : base("Org.OData.Capabilities.V1.SupportedMetadataFormats") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.SupportedMetadataFormats"; /// /// Media types of supported formats for $metadata, including format parameters diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs index 52799b1..721a867 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/TopSupportedConfiguration.cs @@ -17,13 +17,8 @@ public partial class TopSupportedConfiguration : VocabularyTermConfiguration { private bool? _topSupported; - /// - /// Creates a new instance of - /// - public TopSupportedConfiguration() - : base("Org.OData.Capabilities.V1.TopSupported") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.TopSupported"; /// /// Supports $top diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs index d663ac0..3e7d870 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/UpdateRestrictionsConfiguration.cs @@ -29,13 +29,8 @@ public partial class UpdateRestrictionsConfiguration : VocabularyTermConfigurati private string _description; private string _longDescription; - /// - /// Creates a new instance of - /// - public UpdateRestrictionsConfiguration() - : base("Org.OData.Capabilities.V1.UpdateRestrictions") - { - } + /// + public override string TermName => "Org.OData.Capabilities.V1.UpdateRestrictions"; /// /// Entities can be updated diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs index 59c31fd..5320150 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfiguration.cs @@ -12,13 +12,10 @@ namespace Microsoft.OData.ModelBuilder /// public abstract partial class VocabularyTermConfiguration : IRecord { - private readonly string _termName; - /// - /// Creates a new instance of + /// The name of the to build. /// - /// The name of the being built. - public VocabularyTermConfiguration(string termName) => _termName = termName; + public abstract string TermName { get; } /// public abstract IEdmExpression ToEdmExpression(); @@ -39,7 +36,7 @@ public virtual void SetVocabularyAnnotations(EdmModel model, IEdmVocabularyAnnot return; } - var term = model.FindTerm(_termName); + var term = model.FindTerm(TermName); if (term == null) { return; diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt index eb8efef..24871c3 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt @@ -232,13 +232,8 @@ namespace <#= @namespace #> { <#+ ProcessPrivateProperties(term.Type.Definition, term.FullName(), @namespace); #> - /// - /// Creates a new instance of - /// - public <#= clrType #>() - : base("<#= term.FullName()#>") - { - } + /// + public override string TermName => "<#= term.FullName()#>"; <#+ ProcessBuildMethods(term.Type.Definition, term.FullName(), clrType, description, @namespace); #> /// diff --git a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl index 3f3873d..4588624 100644 --- a/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl +++ b/test/Microsoft.OData.ModelBuilder.Tests/PublicApi/Microsoft.OData.ModelBuilder.PublicApi.bsl @@ -259,7 +259,9 @@ public abstract class Microsoft.OData.ModelBuilder.StructuralTypeConfiguration`1 } public abstract class Microsoft.OData.ModelBuilder.VocabularyTermConfiguration : IRecord { - public VocabularyTermConfiguration (string termName) + protected VocabularyTermConfiguration () + + string TermName { public abstract get; } public virtual void SetVocabularyAnnotations (Microsoft.OData.Edm.EdmModel model, Microsoft.OData.Edm.Vocabularies.IEdmVocabularyAnnotatable target) public abstract Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1114,6 +1116,8 @@ public enum Microsoft.OData.ModelBuilder.Capabilities.V1.SearchExpressions : int public class Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public AcceptableEncodingsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsConfiguration HasAcceptableEncodings (string[] acceptableEncodings) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1121,6 +1125,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.AcceptableEncodingsCon public class Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public AnnotationValuesInQuerySupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuerySupportedConfiguration IsAnnotationValuesInQuerySupported (bool annotationValuesInQuerySupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1128,6 +1134,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.AnnotationValuesInQuer public class Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public AsynchronousRequestsSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSupportedConfiguration IsAsynchronousRequestsSupported (bool asynchronousRequestsSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1135,6 +1143,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.AsynchronousRequestsSu public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public BatchContinueOnErrorSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSupportedConfiguration IsBatchContinueOnErrorSupported (bool batchContinueOnErrorSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1142,6 +1152,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchContinueOnErrorSu public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public BatchSupportConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration HasSupportedFormats (string[] supportedFormats) public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsContinueOnErrorSupported (bool continueOnErrorSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfiguration IsEtagReferencesSupported (bool etagReferencesSupported) @@ -1155,6 +1167,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportConfigurat public class Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public BatchSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.BatchSupportedConfiguration IsBatchSupported (bool batchSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1171,6 +1185,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfig public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CallbackSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration HasCallbackProtocols (Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration[] callbackProtocols) public Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfiguration HasCallbackProtocols (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackProtocolConfiguration]] callbackProtocolsConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1179,6 +1195,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CallbackSupportedConfi public class Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ChangeTrackingConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration HasExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] expandableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration HasFilterableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] filterableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfiguration IsSupported (bool supported) @@ -1188,6 +1206,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ChangeTrackingConfigur public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CollectionPropertyRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration[] collectionPropertyRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsConfiguration HasCollectionPropertyRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRestrictionsTypeConfiguration]] collectionPropertyRestrictionsConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1217,6 +1237,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CollectionPropertyRest public class Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ComputeSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfiguration IsComputeSupported (bool computeSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1224,6 +1246,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ComputeSupportedConfig public class Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ConformanceLevelConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelConfiguration HasConformanceLevel (Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelType conformanceLevel) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1231,6 +1255,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ConformanceLevelConfig public class Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CountRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration HasNonCountableNavigationProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonCountableNavigationProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration HasNonCountableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonCountableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfiguration IsCountable (bool countable) @@ -1240,6 +1266,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CountRestrictionsConfi public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CrossJoinSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConfiguration IsCrossJoinSupported (bool crossJoinSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1247,6 +1275,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CrossJoinSupportedConf public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CustomHeadersConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomHeadersConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1267,6 +1297,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfigu public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public CustomQueryOptionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) public Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConfiguration HasCustomQueryOptions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customQueryOptionsConfiguration) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1275,6 +1307,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.CustomQueryOptionsConf public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public DeepInsertSupportConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration IsContentIDSupported (bool contentIDSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfiguration IsSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1283,6 +1317,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepInsertSupportConfi public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public DeepUpdateSupportConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration IsContentIDSupported (bool contentIDSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfiguration IsSupported (bool supported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1291,6 +1327,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeepUpdateSupportConfi public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public DeleteRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) @@ -1310,6 +1348,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.DeleteRestrictionsConf public class Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ExpandRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasMaxLevels (int maxLevels) public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration HasNonExpandableProperties (Microsoft.OData.Edm.Vocabularies.EdmNavigationPropertyPathExpression[] nonExpandableProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.ExpandRestrictionsConfiguration IsExpandable (bool expandable) @@ -1328,6 +1368,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestri public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public FilterFunctionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfiguration HasFilterFunctions (string[] filterFunctions) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1335,6 +1377,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterFunctionsConfigu public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public FilterRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasFilterExpressionRestrictions (Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration[] filterExpressionRestrictions) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasFilterExpressionRestrictions (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.FilterExpressionRestrictionTypeConfiguration]] filterExpressionRestrictionsConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConfiguration HasMaxLevels (int maxLevels) @@ -1348,6 +1392,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.FilterRestrictionsConf public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public IndexableByKeyConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfiguration IsIndexableByKey (bool indexableByKey) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1355,6 +1401,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.IndexableByKeyConfigur public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public InsertRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) @@ -1376,6 +1424,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.InsertRestrictionsConf public class Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public IsolationSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedConfiguration HasIsolationSupported (Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationLevel isolationSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1383,6 +1433,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.IsolationSupportedConf public class Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public KeyAsSegmentSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedConfiguration IsKeyAsSegmentSupported (bool keyAsSegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1390,6 +1442,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.KeyAsSegmentSupportedC public class Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public MediaLocationUpdateSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSupportedConfiguration IsMediaLocationUpdateSupported (bool mediaLocationUpdateSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1397,6 +1451,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.MediaLocationUpdateSup public class Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ModificationQueryOptionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration IsComputeSupported (bool computeSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration IsExpandSupported (bool expandSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.ModificationQueryOptionsConfiguration IsFilterSupported (bool filterSupported) @@ -1442,6 +1498,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRest public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public NavigationRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasNavigability (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationType navigability) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasRestrictedProperties (Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration[] restrictedProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictionsConfiguration HasRestrictedProperties (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationPropertyRestrictionConfiguration]] restrictedPropertiesConfiguration) @@ -1451,6 +1509,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.NavigationRestrictions public class Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public OperationRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.OperationRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) @@ -1473,6 +1533,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.PermissionTypeConfigur public class Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public QuerySegmentSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.QuerySegmentSupportedConfiguration IsQuerySegmentSupported (bool querySegmentSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1495,6 +1557,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadByKeyRestrictionsT public class Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public ReadRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.ReadRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) @@ -1520,6 +1584,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.ScopeTypeConfiguration public class Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SearchRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration HasUnsupportedExpressions (Microsoft.OData.ModelBuilder.Capabilities.V1.SearchExpressions unsupportedExpressions) public Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConfiguration IsSearchable (bool searchable) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () @@ -1528,6 +1594,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SearchRestrictionsConf public class Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SelectSupportConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsComputeSupported (bool computeSupported) public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsCountable (bool countable) public Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfiguration IsExpandable (bool expandable) @@ -1544,6 +1612,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SelectSupportConfigura public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SkipSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfiguration IsSkipSupported (bool skipSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1551,6 +1621,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SkipSupportedConfigura public class Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SortRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration HasAscendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] ascendingOnlyProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration HasDescendingOnlyProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] descendingOnlyProperties) public Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfiguration HasNonSortableProperties (Microsoft.OData.Edm.Vocabularies.EdmPropertyPathExpression[] nonSortableProperties) @@ -1561,6 +1633,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SortRestrictionsConfig public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SupportedFormatsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfiguration HasSupportedFormats (string[] supportedFormats) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1568,6 +1642,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedFormatsConfig public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public SupportedMetadataFormatsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataFormatsConfiguration HasSupportedMetadataFormats (string[] supportedMetadataFormats) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1575,6 +1651,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.SupportedMetadataForma public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public TopSupportedConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfiguration IsTopSupported (bool topSupported) public virtual Microsoft.OData.Edm.IEdmExpression ToEdmExpression () } @@ -1582,6 +1660,8 @@ public class Microsoft.OData.ModelBuilder.Capabilities.V1.TopSupportedConfigurat public class Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration : Microsoft.OData.ModelBuilder.VocabularyTermConfiguration, IRecord { public UpdateRestrictionsConfiguration () + string TermName { public virtual get; } + public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasCustomHeaders (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customHeaders) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasCustomHeaders (System.Func`2[[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration],[Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration]] customHeadersConfiguration) public Microsoft.OData.ModelBuilder.Capabilities.V1.UpdateRestrictionsConfiguration HasCustomQueryOptions (Microsoft.OData.ModelBuilder.Capabilities.V1.CustomParameterConfiguration[] customQueryOptions) From 9687affce1c8ff6f77efc3194c4430a3f3ed3c4f Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 26 Aug 2020 18:46:37 +0300 Subject: [PATCH 28/29] Enum values now output to annotations. --- .../Capabilities/V1/ConformanceLevelConfiguration.cs | 4 +++- .../Capabilities/V1/IsolationSupportedConfiguration.cs | 4 +++- .../V1/NavigationPropertyRestrictionConfiguration.cs | 4 +++- .../Capabilities/V1/NavigationRestrictionsConfiguration.cs | 4 +++- .../Capabilities/V1/SearchRestrictionsConfiguration.cs | 4 +++- .../Vocabularies/VocabularyTermConfigurationExtensions.tt | 5 ++++- 6 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs index ca34197..06014ad 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/ConformanceLevelConfiguration.cs @@ -38,7 +38,9 @@ public override IEdmExpression ToEdmExpression() if (_conformanceLevel.HasValue) { - // properties.Add(new EdmPropertyConstructor("ConformanceLevel", new EdmEnumValue(_conformanceLevel.Value))); + var enumType = new EdmEnumType("Org.OData.Capabilities.V1", "ConformanceLevelType", false); + var enumMember = new EdmEnumMember(enumType, _conformanceLevel.ToString(), new EdmEnumMemberValue((long)_conformanceLevel.Value)); + properties.Add(new EdmPropertyConstructor("ConformanceLevel", new EdmEnumMemberExpression(enumMember))); } if (!properties.Any()) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs index c931ff6..65973b4 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/IsolationSupportedConfiguration.cs @@ -38,7 +38,9 @@ public override IEdmExpression ToEdmExpression() if (_isolationSupported.HasValue) { - // properties.Add(new EdmPropertyConstructor("IsolationSupported", new EdmEnumValue(_isolationSupported.Value))); + var enumType = new EdmEnumType("Org.OData.Capabilities.V1", "IsolationLevel", true); + var enumMember = new EdmEnumMember(enumType, _isolationSupported.ToString(), new EdmEnumMemberValue((long)_isolationSupported.Value)); + properties.Add(new EdmPropertyConstructor("IsolationSupported", new EdmEnumMemberExpression(enumMember))); } if (!properties.Any()) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs index c8173cc..9328e2c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationPropertyRestrictionConfiguration.cs @@ -360,7 +360,9 @@ public IEdmExpression ToEdmExpression() if (_navigability.HasValue) { - // properties.Add(new EdmPropertyConstructor("Navigability", new EdmEnumValue(_navigability.Value))); + var enumType = new EdmEnumType("Org.OData.Capabilities.V1", "NavigationType", false); + var enumMember = new EdmEnumMember(enumType, _navigability.ToString(), new EdmEnumMemberValue((long)_navigability.Value)); + properties.Add(new EdmPropertyConstructor("Navigability", new EdmEnumMemberExpression(enumMember))); } if (_filterFunctions.Any()) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs index 08f08fa..52fed98 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/NavigationRestrictionsConfiguration.cs @@ -63,7 +63,9 @@ public override IEdmExpression ToEdmExpression() if (_navigability.HasValue) { - // properties.Add(new EdmPropertyConstructor("Navigability", new EdmEnumValue(_navigability.Value))); + var enumType = new EdmEnumType("Org.OData.Capabilities.V1", "NavigationType", false); + var enumMember = new EdmEnumMember(enumType, _navigability.ToString(), new EdmEnumMemberValue((long)_navigability.Value)); + properties.Add(new EdmPropertyConstructor("Navigability", new EdmEnumMemberExpression(enumMember))); } if (_restrictedProperties.Any()) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs index e1544ef..5bd91b7 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Capabilities/V1/SearchRestrictionsConfiguration.cs @@ -55,7 +55,9 @@ public override IEdmExpression ToEdmExpression() if (_unsupportedExpressions.HasValue) { - // properties.Add(new EdmPropertyConstructor("UnsupportedExpressions", new EdmEnumValue(_unsupportedExpressions.Value))); + var enumType = new EdmEnumType("Org.OData.Capabilities.V1", "SearchExpressions", true); + var enumMember = new EdmEnumMember(enumType, _unsupportedExpressions.ToString(), new EdmEnumMemberValue((long)_unsupportedExpressions.Value)); + properties.Add(new EdmPropertyConstructor("UnsupportedExpressions", new EdmEnumMemberExpression(enumMember))); } if (!properties.Any()) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt index 24871c3..7d8a3a5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt @@ -580,10 +580,13 @@ using Microsoft.OData.Edm.Vocabularies; } else if (actualType.TypeKind == EdmTypeKind.Enum) { + var enumType = actualType as IEdmEnumType; #> if (_<#= camelName #>.HasValue) { - // properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmEnumValue(_<#= camelName #>.Value))); + var enumType = new EdmEnumType("<#= enumType.Namespace #>", "<#= enumType.Name #>", <#= enumType.IsFlags.ToString().ToLower() #>); + var enumMember = new EdmEnumMember(enumType, _<#= camelName #>.ToString(), new EdmEnumMemberValue((long)_<#= camelName #>.Value)); + properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmEnumMemberExpression(enumMember))); } <#+ From ea6775d086573454e67a242584e698c11ef6ab1d Mon Sep 17 00:00:00 2001 From: Mula Njira Date: Wed, 26 Aug 2020 19:03:42 +0300 Subject: [PATCH 29/29] Support for primitive property settings (converting to string) --- .../Vocabularies/Core/V1/PrimitiveExampleValueConfiguration.cs | 2 +- .../Vocabularies/VocabularyTermConfigurationExtensions.tt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PrimitiveExampleValueConfiguration.cs b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PrimitiveExampleValueConfiguration.cs index e5ee92f..4c3946c 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PrimitiveExampleValueConfiguration.cs +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/Core/V1/PrimitiveExampleValueConfiguration.cs @@ -59,7 +59,7 @@ public IEdmExpression ToEdmExpression() if (_value != null) { - // properties.Add(new EdmPropertyConstructor("Value", new EdmPrimitiveConstant(_value.Value))); + properties.Add(new EdmPropertyConstructor("Value", new EdmStringConstant(_value.ToString()))); } if (!properties.Any()) diff --git a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt index 7d8a3a5..d0049e5 100644 --- a/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt +++ b/src/Microsoft.OData.ModelBuilder/Vocabularies/VocabularyTermConfigurationExtensions.tt @@ -608,7 +608,7 @@ using Microsoft.OData.Edm.Vocabularies; #> if (_<#= camelName #> != null) { - // properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmPrimitiveConstant(_<#= camelName #>.Value))); + properties.Add(new EdmPropertyConstructor("<#= name #>", new EdmStringConstant(_<#= camelName #>.ToString()))); } <#+