Exemple #1
0
            public override IMessage WithMetaData(IReadOnlyDictionary <string, object> newMetaData)
            {
                var identifier = _aggregate.IdentifierAsString();

                if (identifier != null)
                {
                    return(new GenericDomainEventMessage(Type, AggregateIdentifier, SequenceNumber, Payload, MetaData, Identifier, Timestamp));
                }
                else
                {
                    return(new LazyIdentifierDomainEventMessage <P>(_aggregate, Type, SequenceNumber, Payload, MetaData.From(newMetaData)));
                }
            }
Exemple #2
0
 private void ValidateOnLoad(IAggregate <T> aggregate, long?expectedVersion)
 {
     if (expectedVersion != null && aggregate.Version != null && !expectedVersion.Equals(aggregate.Version))
     {
         throw new ConflictingAggregateVersionException(aggregate.IdentifierAsString(),
                                                        expectedVersion.Value,
                                                        // ReSharper disable once PossibleInvalidOperationException
                                                        aggregate.Version.Value);
     }
 }