private void SetTextAndEntities(dynamic root)
{
if (root.full_text())
{
this.Text = ParsingExtension.ResolveEntity(root.full_text);
}
else if (root.text())
{
this.Text = ParsingExtension.ResolveEntity(root.text);
}
if (root.extended_entities())
{
// get correctly typed entities array
var orgEntities = (TwitterEntity[])Enumerable.ToArray(TwitterEntity.GetEntities(root.entities));
var extEntities = (TwitterEntity[])Enumerable.ToArray(TwitterEntity.GetEntities(root.extended_entities));
// merge entities
this.Entities = orgEntities
.Where(e => e.EntityType != EntityType.Media)
.Concat(extEntities) // extended entities contains media entities only.
.ToArray();
}
else if (root.entities())
{
this.Entities = Enumerable.ToArray(TwitterEntity.GetEntities(root.entities));
}
else
{
this.Entities = new TwitterEntity[0];
}
}