public void HasEditLink_RoundTrips() { // Arrange SelfLinkBuilder <Uri> editLinkBuilder = new SelfLinkBuilder <Uri>((ctxt) => null, followsConventions: true); // Act _entityset.HasEditLink(editLinkBuilder); // Assert Assert.Equal(editLinkBuilder, _entityset.GetEditLink()); }
public void Apply(EntitySetConfiguration configuration, ODataModelBuilder model) { if (configuration == null) { throw Error.ArgumentNull("configuration"); } // Configure the self link for the feed if (configuration.GetFeedSelfLink() == null) { configuration.HasFeedSelfLink(entitySetContext => { string routeName = ODataRouteNames.Default; string selfLink = entitySetContext.UrlHelper.Link( routeName, new { controller = configuration.Name }); if (selfLink == null) { throw Error.InvalidOperation(SRResources.DefaultRouteMissingOrIncorrect, routeName); } return new Uri(selfLink); }); } // We only need to configure the EditLink by convention, ReadLink and IdLink both delegate to EditLink if (configuration.GetEditLink() == null) { bool derivedTypesDefineNavigationProperty = model.DerivedTypes(configuration.EntityType).Any(e => e.NavigationProperties.Any()); // generate links with cast if any of the derived types define a navigation property if (derivedTypesDefineNavigationProperty) { configuration.HasEditLink((entityContext) => GenerateSelfLink(configuration, entityContext, includeCast: true)); } else { configuration.HasEditLink((entityContext) => GenerateSelfLink(configuration, entityContext, includeCast: false)); } } }
public void Apply(EntitySetConfiguration configuration, ODataModelBuilder model) { if (configuration == null) { throw Error.ArgumentNull("configuration"); } // Configure the self link for the feed if (configuration.GetFeedSelfLink() == null) { configuration.HasFeedSelfLink(entitySetContext => { string selfLink = entitySetContext.UrlHelper.ODataLink(entitySetContext.PathHandler, new EntitySetPathSegment(entitySetContext.EntitySet)); if (selfLink == null) { return null; } return new Uri(selfLink); }); } // We only need to configure the EditLink by convention, ReadLink and IdLink both delegate to EditLink if (configuration.GetEditLink() == null) { bool derivedTypesDefineNavigationProperty = model.DerivedTypes(configuration.EntityType).Any(e => e.NavigationProperties.Any()); // generate links with cast if any of the derived types define a navigation property if (derivedTypesDefineNavigationProperty) { configuration.HasEditLink((entityContext) => GenerateSelfLink(configuration, entityContext, includeCast: true)); } else { configuration.HasEditLink((entityContext) => GenerateSelfLink(configuration, entityContext, includeCast: false)); } } }
public void Apply(EntitySetConfiguration configuration, ODataModelBuilder model) { if (configuration == null) { throw Error.ArgumentNull("configuration"); } // Configure the self link for the feed if (configuration.GetFeedSelfLink() == null) { configuration.HasFeedSelfLink(entitySetContext => { string selfLink = entitySetContext.UrlHelper.ODataLink(entitySetContext.PathHandler, new EntitySetPathSegment(entitySetContext.EntitySet)); if (selfLink == null) { return(null); } return(new Uri(selfLink)); }); } // We only need to configure the EditLink by convention, ReadLink and IdLink both delegate to EditLink if (configuration.GetEditLink() == null) { bool derivedTypesDefineNavigationProperty = model.DerivedTypes(configuration.EntityType).Any(e => e.NavigationProperties.Any()); // generate links with cast if any of the derived types define a navigation property if (derivedTypesDefineNavigationProperty) { configuration.HasEditLink((entityContext) => GenerateSelfLink(configuration, entityContext, includeCast: true)); } else { configuration.HasEditLink((entityContext) => GenerateSelfLink(configuration, entityContext, includeCast: false)); } } }