public ILink GetRelatedResourceLink <TResource>(TResource relationshipOwner, IResourceTypeRegistry resourceTypeRegistry, ResourceTypeRelationship property, string baseUrl) { var url = BuildRelatedResourceUrl(relationshipOwner, resourceTypeRegistry, property, baseUrl); var metadata = GetMetadataForRelatedResourceLink(relationshipOwner, property); return(new Link(url, metadata)); }
/// <summary> /// Creates a new EntityFrameworkEntityFrameworkResourceObjectMaterializer /// </summary> /// <param name="dbContext"></param> /// <param name="registry"></param> public EntityFrameworkResourceObjectMaterializer(DbContext dbContext, IResourceTypeRegistry registry) { _dbContext = dbContext; _registry = registry; _openSetToManyRelationshipValueMethod = GetType() .GetMethod("SetToManyRelationshipValue", BindingFlags.NonPublic | BindingFlags.Instance); _openGetExistingRecordGenericMethod = GetType() .GetMethod("GetExistingRecordGeneric", BindingFlags.NonPublic | BindingFlags.Instance); }
public StarshipDocumentMaterializer( TestDbContext dbContext, IQueryableResourceCollectionDocumentBuilder queryableResourceCollectionDocumentBuilder, IBaseUrlService baseUrlService, ISingleResourceDocumentBuilder singleResourceDocumentBuilder, ISortExpressionExtractor sortExpressionExtractor, IQueryableEnumerationTransformer queryableEnumerationTransformer, IResourceTypeRegistry resourceTypeRegistry) : base( queryableResourceCollectionDocumentBuilder, baseUrlService, singleResourceDocumentBuilder, queryableEnumerationTransformer, sortExpressionExtractor, resourceTypeRegistry) { _dbContext = dbContext; }
/// <summary> /// Creates a new MappedDocumentMaterializer /// </summary> protected MappedDocumentMaterializer( IQueryableResourceCollectionDocumentBuilder queryableResourceCollectionDocumentBuilder, IBaseUrlService baseUrlService, ISingleResourceDocumentBuilder singleResourceDocumentBuilder, IQueryableEnumerationTransformer queryableEnumerationTransformer, ISortExpressionExtractor sortExpressionExtractor, IResourceTypeRegistry resourceTypeRegistry) { _queryableResourceCollectionDocumentBuilder = queryableResourceCollectionDocumentBuilder; _baseUrlService = baseUrlService; _singleResourceDocumentBuilder = singleResourceDocumentBuilder; _queryableEnumerationTransformer = queryableEnumerationTransformer; _sortExpressionExtractor = sortExpressionExtractor; _resourceTypeRegistry = resourceTypeRegistry; }
/// <summary> /// Constructs a URL for the resource(s) on the other side of the given relationship, belonging to the given resource /// </summary> /// <param name="relationshipOwner"></param> /// <param name="resourceTypeRegistry"></param> /// <param name="property"></param> /// <param name="baseUrl"></param> /// <returns></returns> protected virtual string BuildRelatedResourceUrl(object relationshipOwner, IResourceTypeRegistry resourceTypeRegistry, ResourceTypeRelationship property, string baseUrl) { var relationshipOwnerType = relationshipOwner.GetType(); var sanitizedBaseUrl = GetSanitizedBaseUrl(baseUrl); var registration = resourceTypeRegistry.GetRegistrationForType(relationshipOwnerType); var id = registration.GetIdForResource(relationshipOwner); if (property.RelatedResourceLinkTemplate != null) { var replacedString = property.RelatedResourceLinkTemplate.Replace("{1}", id); return(String.Format("{0}/{1}", sanitizedBaseUrl, replacedString)); } return(String.Format("{0}/{1}/{2}/{3}", sanitizedBaseUrl, registration.ResourceTypeName, id, property.JsonKey)); }
/// <summary> /// Creates a new RegistryDrivenSingleResourceDocumentBuilder /// </summary> /// <param name="resourceTypeRegistry">The resource type registry to use to locate the registered type</param> /// <param name="linkConventions">Conventions to follow when building links</param> public RegistryDrivenSingleResourceDocumentBuilder(IResourceTypeRegistry resourceTypeRegistry, ILinkConventions linkConventions) : base(resourceTypeRegistry, linkConventions) { }
/// <summary> /// Creates a new FilteringQueryableTransformer /// </summary> /// <param name="resourceTypeRegistry">The registry used to look up registered type information.</param> public DefaultFilteringTransformer(IResourceTypeRegistry resourceTypeRegistry) { _resourceTypeRegistry = resourceTypeRegistry; }
/// <summary> /// Creates a new PathVisitor /// </summary> /// <param name="resourceTypeRegistry"></param> public PathVisitor(IResourceTypeRegistry resourceTypeRegistry) { _resourceTypeRegistry = resourceTypeRegistry; }
/// <summary> /// Creates a new RegistryDrivenSingleResourceDocumentBuilder /// </summary> /// <param name="resourceTypeRegistry">The resource type registry to use to locate the registered type</param> /// <param name="linkConventions">Conventions to follow when building links</param> public RegistryDrivenSingleResourceDocumentBuilder(IResourceTypeRegistry resourceTypeRegistry, ILinkConventions linkConventions) : base(resourceTypeRegistry, linkConventions) { }
/// <summary> /// Creates a new RegistryDrivenDocumentBuilder /// </summary> /// <param name="resourceTypeRegistry"></param> /// <param name="linkConventions"></param> protected RegistryDrivenDocumentBuilder(IResourceTypeRegistry resourceTypeRegistry, ILinkConventions linkConventions) { _resourceTypeRegistry = resourceTypeRegistry; _linkConventions = linkConventions; }
public CustomEntityFrameworkResourceObjectMaterializer(DbContext dbContext, IResourceTypeRegistry registry) : base(dbContext, registry) { }
/// <summary> /// Creates a new RegistryDrivenSingleResourceDocumentBuilder /// </summary> /// <param name="resourceTypeRegistry">The resource type registry to use to locate the registered type</param> /// <param name="linkConventions">Conventions to follow when building links</param> public RegistryDrivenResourceCollectionDocumentBuilder(IResourceTypeRegistry resourceTypeRegistry, ILinkConventions linkConventions) : base(resourceTypeRegistry, linkConventions) { }
/// <summary> /// Creates a new PathVisitor /// </summary> /// <param name="resourceTypeRegistry"></param> public PathVisitor(IResourceTypeRegistry resourceTypeRegistry) { _resourceTypeRegistry = resourceTypeRegistry; }
/// <summary> /// Creates a new RegistryDrivenDocumentBuilder /// </summary> /// <param name="resourceTypeRegistry"></param> /// <param name="linkConventions"></param> protected RegistryDrivenDocumentBuilder(IResourceTypeRegistry resourceTypeRegistry, ILinkConventions linkConventions) { _resourceTypeRegistry = resourceTypeRegistry; _linkConventions = linkConventions; }
public CustomEntityFrameworkResourceObjectMaterializer(DbContext dbContext, IResourceTypeRegistry registry) : base(dbContext, registry) { }