public ResourceObject GetData(ContextEntity contextEntity, IIdentifiable entity, IResourceDefinition resourceDefinition = null) { var data = new ResourceObject { Type = contextEntity.EntityName, Id = entity.StringId }; if (_jsonApiContext.IsRelationshipPath) { return(data); } data.Attributes = new Dictionary <string, object>(); var resourceAttributes = resourceDefinition?.GetOutputAttrs(entity) ?? contextEntity.Attributes; resourceAttributes.ForEach(attr => { var attributeValue = attr.GetValue(entity); if (ShouldIncludeAttribute(attr, attributeValue)) { data.Attributes.Add(attr.PublicAttributeName, attributeValue); } }); if (contextEntity.Relationships.Count > 0) { AddRelationships(data, contextEntity, entity); } return(data); }