public void Test() { _original = (SampleDomainEvent) new SampleDomainEvent(1223, Guid.NewGuid()).CloneWithSaga(Guid.NewGuid()); var ser = new WireJsonSerializer(); var bytes = ser.ToBinary(_original); _restored = (SampleDomainEvent)ser.FromBinary(bytes, typeof(SampleDomainEvent)); }
public bool IsRestorable(object original, out string difference) { var bytes = _serializer.ToBinary(original); var restored = _serializer.FromBinary(bytes, original.GetType()); var comparisonResult = _compareLogic.Compare(original, restored); difference = comparisonResult.AreEqual ? null : comparisonResult.DifferencesString; return(comparisonResult.AreEqual); }
//Event order matter!! public void Save(string id, params DomainEvent[] messages) { long counter = 0; var journalEntries = messages.Select(m => new JournalItem(id, ++counter, false, m.GetType().AssemblyQualifiedShortName(), m.CreatedTime, "", _serializer.ToBinary(m)) ) .ToArray(); _rawDataRepo.Save(id, journalEntries); }
public void Add <T>(T aggregate) where T : IAggregate { var serializer = new WireJsonSerializer(); using (var repo = new RawSnapshotsRepository(_writeString)) { var snapshot = aggregate.GetSnapshot(); var item = new SnapshotItem() { Manifest = snapshot.GetType().AssemblyQualifiedShortName(), PersistenceId = AggregateActorName.New <T>(aggregate.Id).Name, Snapshot = serializer.ToBinary(snapshot), Timestamp = BusinessDateTime.UtcNow }; repo.Save(item.PersistenceId, item); } }