File tree Expand file tree Collapse file tree 1 file changed +21
-2
lines changed
src/Microsoft.OpenApi.OData.Reader/Operation Expand file tree Collapse file tree 1 file changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -133,10 +133,12 @@ protected override void SetBasicInfo(OpenApiOperation operation)
133
133
/// <inheritdoc/>
134
134
protected override void SetTags ( OpenApiOperation operation )
135
135
{
136
- string value = EdmOperation . IsAction ( ) ? "Actions" : "Functions" ;
136
+ string tagName = null ;
137
+ var secondLastSegment = Path . Segments . Reverse ( ) . Skip ( 1 ) . First ( ) ;
138
+ GenerateTagName ( secondLastSegment , out tagName ) ;
137
139
OpenApiTag tag = new OpenApiTag
138
140
{
139
- Name = NavigationSource . Name + "." + value ,
141
+ Name = tagName ,
140
142
} ;
141
143
tag . Extensions . Add ( Constants . xMsTocType , new OpenApiString ( "container" ) ) ;
142
144
operation . Tags . Add ( tag ) ;
@@ -146,6 +148,23 @@ protected override void SetTags(OpenApiOperation operation)
146
148
base . SetTags ( operation ) ;
147
149
}
148
150
151
+ private void GenerateTagName ( ODataSegment targetSegment , out string tagName )
152
+ {
153
+ if ( targetSegment is ODataNavigationPropertySegment )
154
+ {
155
+ tagName = EdmModelHelper . GenerateNavigationPropertyPathTagName ( Path , Context ) ;
156
+ }
157
+ else if ( targetSegment is ODataOperationSegment || targetSegment is ODataOperationImportSegment )
158
+ { // Composable function
159
+ targetSegment = Path . Segments . Reverse ( ) . Skip ( 2 ) . First ( ) ;
160
+ GenerateTagName ( targetSegment , out tagName ) ;
161
+ }
162
+ else // ODataKeySegment or ODataNavigationSourceSegment
163
+ {
164
+ tagName = NavigationSource . Name + "." + NavigationSource . EntityType . Name ;
165
+ }
166
+ }
167
+
149
168
/// <inheritdoc/>
150
169
protected override void SetParameters ( OpenApiOperation operation )
151
170
{
You can’t perform that action at this time.
0 commit comments