public JObject ToJObject(JsonSerializer serializer)
{
var output = GetBaseJObject(serializer);
if(this.links.Any()) {
var linksOutput = new JObject();
var dtoProps = this.model?.ToDictionary() ?? new Dictionary<string, object>();
var resolvedLinks = GetResolvedLinks(this.links, dtoProps, this.config.LinkBase);
foreach(var link in resolvedLinks) {
if(link.Value is IEnumerable) {
var linksOuput = JArray.FromObject(link.Value);
linksOutput.Add(link.Key, linksOuput);
} else {
var linkOuput = JObject.FromObject(link.Value);
linksOutput.Add(link.Key, linkOuput);
}
}
output.Add(LinksKey, linksOutput);
}
if(this.embedded.Any()) {
var embeddedOutput = EmbeddedToJObject((m) => m.ToJObject(serializer));
output.Add(EmbeddedKey, embeddedOutput);
}
return output;
}