Ejemplo n.º 1
0
        public async Task <IActionResult> GetSomething(string accept)
        {
            if (!string.IsNullOrWhiteSpace(accept))
            {
                bool generateLinks = accept.EndsWith("-hateoas");

                List <NavigationLinkBuilder <SomethingResponse> > somethingResponse = new List <NavigationLinkBuilder <SomethingResponse> >();

                for (int i = 1; i < 4; i++)
                {
                    NavigationLinkBuilder <SomethingResponse> something = new NavigationLinkBuilder <SomethingResponse>(
                        new SomethingResponse("FormatFilter", i));

                    if (generateLinks)
                    {
                        something.AddNavigationLink(Url.Link("GetSomethingId", new { i }), "self", "GET");
                    }

                    somethingResponse.Add(something);
                }

                return(await Task.FromResult(Ok(somethingResponse)));
            }

            return(await Task.FromResult(BadRequest()));
        }
Ejemplo n.º 2
0
        public void CtorNavigationSourceLinkBuilderAnnotation_SetsProperties()
        {
            // Arrange & Act & Assert
            Func <ResourceContext, IEdmNavigationProperty, Uri> navigationLinkFactory = (r, p) => null;
            NavigationLinkBuilder builder = new NavigationLinkBuilder(navigationLinkFactory, false);

            // Assert
            Assert.Same(navigationLinkFactory, builder.Factory);
            Assert.False(builder.FollowsConventions);
        }
        public void HasNavigationPropertyLink_SetsIdLinkBuilder()
        {
            // Arrange
            EdmModel model = new EdmModel();

            NavigationLinkBuilder linkBuilder = new NavigationLinkBuilder(
                (ResourceContext a, IEdmNavigationProperty b) => new Uri("http://orders"), followsConventions: false);

            // Act
            model.HasNavigationPropertyLink(Customers, OrdersNavigationProperty, linkBuilder);

            // Assert
            NavigationSourceLinkBuilderAnnotation annotation = model.GetNavigationSourceLinkBuilder(Customers);
            Uri uri = annotation.BuildNavigationLink(new ResourceContext(), OrdersNavigationProperty);

            Assert.Equal(uri, new Uri("http://orders"));
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Register a link builder for a <see cref="IEdmNavigationProperty" /> that navigates from Entities in this navigation source.
 /// </summary>
 public void AddNavigationPropertyLinkBuilder(IEdmNavigationProperty navigationProperty, NavigationLinkBuilder linkBuilder)
 {
     _navigationPropertyLinkBuilderLookup[navigationProperty] = linkBuilder;
 }