public static OpenApiParameter CreateExpand(this ODataContext context, IEdmNavigationProperty navigationProperty) { Utils.CheckArgumentNull(context, nameof(context)); Utils.CheckArgumentNull(navigationProperty, nameof(navigationProperty)); return(context.CreateExpand(navigationProperty, navigationProperty.ToEntityType())); }
public static OpenApiParameter CreateExpand(this ODataContext context, IEdmSingleton singleton) { Utils.CheckArgumentNull(context, nameof(context)); Utils.CheckArgumentNull(singleton, nameof(singleton)); return(context.CreateExpand(singleton, singleton.EntityType())); }
public static OpenApiParameter CreateExpand(this ODataContext context, IEdmEntitySet entitySet) { Utils.CheckArgumentNull(context, nameof(context)); Utils.CheckArgumentNull(entitySet, nameof(entitySet)); return(context.CreateExpand(entitySet, entitySet.EntityType())); }
private void VerifyCreateExpandParameter(IEdmElement edmElement, ODataContext context, string expandItemsText) { // Arrange & Act OpenApiParameter parameter; switch (edmElement) { case IEdmEntitySet entitySet: parameter = context.CreateExpand(entitySet); break; case IEdmSingleton singleton: parameter = context.CreateExpand(singleton); break; case IEdmNavigationProperty navigationProperty: parameter = context.CreateExpand(navigationProperty); break; default: return; } // Assert Assert.NotNull(parameter); string json = parameter.SerializeAsJson(OpenApiSpecVersion.OpenApi3_0); string expected = $@"{{ ""name"": ""$expand"", ""in"": ""query"", ""description"": ""Expand related entities"", ""style"": ""form"", ""explode"": false, ""schema"": {{ ""uniqueItems"": true, ""type"": ""array"", ""items"": {{ {expandItemsText} ""type"": ""string"" }} }} }}"; Assert.Equal(expected.ChangeLineBreaks(), json); }
/// <summary> /// Create $expand parameter for the <see cref="IEdmNavigationSource"/>. /// </summary> /// <param name="context">The OData context.</param> /// <param name="target">The edm entity path.</param> /// <param name="entityType">The edm entity path.</param> /// <returns>The created <see cref="OpenApiParameter"/> or null.</returns> public static OpenApiParameter CreateExpand(this ODataContext context, IEdmVocabularyAnnotatable target, IEdmEntityType entityType) { // patchwork to avoid breaking changes return(context.CreateExpand(target, entityType as IEdmStructuredType)); }