Exemple #1
0
        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()));
        }
Exemple #2
0
        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()));
        }
Exemple #3
0
        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()));
        }
Exemple #4
0
        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));
 }