public static IAggregateSnapshot ToSnapshot(SnapshotItem snapshotItem) { var json = Encoding.UTF8.GetString(snapshotItem.Data); var type = Type.GetType(snapshotItem.SnapshotType); return((IAggregateSnapshot)JsonConvert.DeserializeObject(json, type)); }
public void SaveSnapshot(IAggregateSnapshot snapshot) { var snapshotItem = SnapshotItem.FromDomainSnapshot(snapshot); collection.ReplaceOne(f => f.AggregateId == snapshot.Id.ToString(), snapshotItem, new ReplaceOptions() { IsUpsert = true }); }
public IAggregateSnapshot GetSnapshotFromAggreate(Guid aggregateId) { var result = collection.Find(f => f.AggregateId == aggregateId.ToString()).FirstOrDefault(); if (result == null) { return(null); } return(SnapshotItem.ToSnapshot(result)); }