in src/Microsoft.OpenApi.OData.Reader/Operation/ODataTypeCastGetOperationHandler.cs [264:329]
protected override void SetParameters(OpenApiOperation operation)
{
base.SetParameters(operation);
if(navigationProperty != null) {
if (IsSingleElement)
{
new OpenApiParameter[] {
Context.CreateSelect(navigationProperty),
Context.CreateExpand(navigationProperty),
}
.Where(x => x != null)
.ToList()
.ForEach(p => operation.Parameters.Add(p));
}
else
{
GetParametersForAnnotableOfMany(navigationProperty)
.Union(
new OpenApiParameter[] {
Context.CreateOrderBy(navigationProperty),
Context.CreateSelect(navigationProperty),
Context.CreateExpand(navigationProperty),
})
.Where(x => x != null)
.ToList()
.ForEach(p => operation.Parameters.Add(p));
}
}
else if(entitySet != null)
{
if(IsSingleElement)
{
new OpenApiParameter[] {
Context.CreateSelect(entitySet),
Context.CreateExpand(entitySet),
}
.Where(x => x != null)
.ToList()
.ForEach(p => operation.Parameters.Add(p));
}
else
{
GetParametersForAnnotableOfMany(entitySet)
.Union(
new OpenApiParameter[] {
Context.CreateOrderBy(entitySet),
Context.CreateSelect(entitySet),
Context.CreateExpand(entitySet),
})
.Where(x => x != null)
.ToList()
.ForEach(p => operation.Parameters.Add(p));
}
}
else if(singleton != null)
{
new OpenApiParameter[] {
Context.CreateSelect(singleton),
Context.CreateExpand(singleton),
}
.Where(x => x != null)
.ToList()
.ForEach(p => operation.Parameters.Add(p));
}
}