private JObject EmbeddedToJObject(Func<HALResponse, JObject> converter)
{
var embeddedOutput = new JObject();
foreach(var embedPair in this.embedded) {
if(embedPair.Value is IEnumerable<HALResponse>) {
embeddedOutput.Add(embedPair.Key, JArray.FromObject(((IEnumerable<HALResponse>)embedPair.Value).Select(m => converter(m))));
} else if(embedPair.Value is HALResponse) {
embeddedOutput.Add(embedPair.Key, JObject.FromObject(converter((HALResponse)embedPair.Value)));
} else {
throw new NotImplementedException();
}
}
return embeddedOutput;
}