public EntitySnapshot(EntitySnapshot other, dynamic content) { Contract.Requires<ArgumentNullException>(other != null); if (content == null) { this.adapter = ExpandoAdapter.Empty; } else if (content is ExpandoObject) { this.adapter = new ExpandoAdapter(content); } else { dynamic expandoObject = new ExpandoObject(); expandoObject.Value = content; this.adapter = new ExpandoAdapter(expandoObject); } this.author = other.Author; this.id = other.Id; this.links = other.Links; this.published = other.Published; this.title = other.Title; this.updated = other.Updated; }
protected async Task UpdateSnapshotAsync(Response response) { var feed = new AtomFeed(); await feed.ReadXmlAsync(response.XmlReader); if (feed.Entries.Count != 1) { throw new InvalidDataException(); // TODO: Diagnostics } this.Snapshot = new EntitySnapshot(feed.Entries[0]); }