protected override void SetParameters()

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));
		}
	}