private void VerifyCreateOrderByParameter(IEdmElement edmElement, ODataContext context, string orderByItemsText = null) { // Arrange & Act OpenApiParameter parameter; switch (edmElement) { case IEdmEntitySet entitySet: parameter = context.CreateOrderBy(entitySet); break; case IEdmSingleton singleton: parameter = context.CreateOrderBy(singleton); break; case IEdmNavigationProperty navigationProperty: parameter = context.CreateOrderBy(navigationProperty); break; default: return; } string itemsText = orderByItemsText == null ? @"""type"": ""string""" : $@"{orderByItemsText} ""type"": ""string"""; // Assert Assert.NotNull(parameter); string json = parameter.SerializeAsJson(OpenApiSpecVersion.OpenApi3_0); string expected = $@"{{ ""name"": ""$orderby"", ""in"": ""query"", ""description"": ""Order items by property values"", ""style"": ""form"", ""explode"": false, ""schema"": {{ ""uniqueItems"": true, ""type"": ""array"", ""items"": {{ {itemsText} }} }} }}"; Assert.Equal(expected.ChangeLineBreaks(), json); }
public static OpenApiParameter CreateOrderBy(this ODataContext context, IEdmNavigationProperty navigationProperty) { Utils.CheckArgumentNull(context, nameof(context)); Utils.CheckArgumentNull(navigationProperty, nameof(navigationProperty)); return(context.CreateOrderBy(navigationProperty, navigationProperty.ToEntityType())); }
public static OpenApiParameter CreateOrderBy(this ODataContext context, IEdmSingleton singleton) { Utils.CheckArgumentNull(context, nameof(context)); Utils.CheckArgumentNull(singleton, nameof(singleton)); return(context.CreateOrderBy(singleton, singleton.EntityType())); }
public static OpenApiParameter CreateOrderBy(this ODataContext context, IEdmEntitySet entitySet) { Utils.CheckArgumentNull(context, nameof(context)); Utils.CheckArgumentNull(entitySet, nameof(entitySet)); return(context.CreateOrderBy(entitySet, entitySet.EntityType())); }
/// <summary> /// Create $orderby parameter for the <see cref="IEdmEntitySet"/>. /// </summary> /// <param name="context">The OData context.</param> /// <param name="target">The Edm annotation target.</param> /// <param name="entityType">The Edm Entity type.</param> /// <returns>The created <see cref="OpenApiParameter"/> or null.</returns> public static OpenApiParameter CreateOrderBy(this ODataContext context, IEdmVocabularyAnnotatable target, IEdmEntityType entityType) {// patchwork to avoid breaking changes return(context.CreateOrderBy(target, entityType as IEdmStructuredType)); }