Example #1
0
        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));
        }