Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        //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);
            }
        }