private static Dictionary<string, ILink> CreateLinks(IResourceMapping resourceMapping, UrlBuilder urlBuilder, SingleResource result) { return new Dictionary<string, ILink>() { { SelfLinkKey, new SimpleLink { Href = urlBuilder.GetFullyQualifiedUrl(resourceMapping.UrlTemplate.Replace(IdPlaceholder, result.Id)) } } }; }
public SingleResource CreateResourceRepresentation( object objectGraph, IResourceMapping resourceMapping, Context context) { var result = new SingleResource(); result.Id = resourceMapping.IdGetter(objectGraph).ToString(); result.Type = resourceMapping.ResourceType; result.Attributes = resourceMapping.PropertyGetters.ToDictionary(kvp => kvp.Key, kvp => kvp.Value(objectGraph)); result.Links = new Dictionary<string, ILink>() { { "self", linkBuilder.FindResourceSelfLink(context, result.Id, resourceMapping) } }; if (resourceMapping.Relationships.Any()) { result.Relationships = CreateRelationships(objectGraph, result.Id, resourceMapping, context); } return result; }
public SingleResource CreateResourceRepresentation(object objectGraph, IResourceMapping resourceMapping, Context context) { var urlBuilder = new UrlBuilder { RoutePrefix = context.RoutePrefix }; var result = new SingleResource(); result.Id = resourceMapping.IdGetter(objectGraph).ToString(); result.Type = resourceMapping.ResourceType; result.Attributes = resourceMapping.PropertyGetters.ToDictionary(kvp => kvp.Key, kvp => kvp.Value(objectGraph)); if (resourceMapping.UrlTemplate != null) result.Links = CreateLinks(resourceMapping, urlBuilder, result); if (resourceMapping.Relationships.Any()) result.Relationships = CreateRelationships(objectGraph, result.Id, resourceMapping, context); return result; }