示例#1
0
 public IDomainEvent <TAggregate, TIdentity> Deserialize <TAggregate, TIdentity>(
     TIdentity id,
     ICommittedDomainEvent committedDomainEvent)
     where TAggregate : IAggregateRoot <TIdentity>
     where TIdentity : IIdentity
 {
     return((IDomainEvent <TAggregate, TIdentity>)Deserialize(committedDomainEvent));
 }
        public IDomainEvent Deserialize(ICommittedDomainEvent committedDomainEvent)
        {
            var metadata = (IMetadata)_jsonSerializer.Deserialize <Metadata>(committedDomainEvent.Metadata);

            var eventDefinition = _eventDefinitionService.GetEventDefinition(
                metadata.EventName,
                metadata.EventVersion);

            var aggregateEvent = (IAggregateEvent)_jsonSerializer.Deserialize(committedDomainEvent.Data, eventDefinition.Type);

            var domainEvent = _domainEventFactory.Create(
                aggregateEvent,
                metadata,
                committedDomainEvent.AggregateId,
                committedDomainEvent.AggregateSequenceNumber);

            return(domainEvent);
        }
示例#3
0
        public IDomainEvent Deserialize(ICommittedDomainEvent committedDomainEvent)
        {
            var metadata = (IMetadata)_jsonSerializer.Deserialize <Metadata>(committedDomainEvent.Metadata);

            var eventDefinition = _eventDefinitionService.GetEventDefinition(
                metadata.EventName,
                metadata.EventVersion);

            var aggregateEvent = (IAggregateEvent)_jsonSerializer.Deserialize(committedDomainEvent.Data, eventDefinition.Type);

            var domainEventType = typeof(DomainEvent <>).MakeGenericType(eventDefinition.Type);
            var domainEvent     = (IDomainEvent)Activator.CreateInstance(
                domainEventType,
                aggregateEvent,
                metadata,
                metadata.Timestamp,
                committedDomainEvent.GlobalSequenceNumber,
                committedDomainEvent.AggregateId,
                committedDomainEvent.AggregateSequenceNumber,
                committedDomainEvent.BatchId);

            return(domainEvent);
        }
示例#4
0
        public IDomainEvent Deserialize(ICommittedDomainEvent committedDomainEvent)
        {
            var metadata = (IMetadata)_jsonSerializer.Deserialize <Metadata>(committedDomainEvent.Metadata);

            return(Deserialize(committedDomainEvent.AggregateId, committedDomainEvent.Data, metadata));
        }