/// <summary> /// Initializes a new instance of the <see cref="AggregateExtension" /> class using the supplied extension entity names. /// </summary> public AggregateExtension(DomainModel domainModel, AggregateExtensionDefinition aggregateExtensionDefinition) { _domainModel = domainModel; AggregateRootEntityName = aggregateExtensionDefinition.AggregateRootEntityName; ExtensionEntityNames = aggregateExtensionDefinition.ExtensionEntityNames; }
public void AddAggregateExtension(AggregateExtensionDefinition aggregateExtensionDefinition) { // Defensive programming to prevent unexpected behavior caused by "missing" extensions if (_finalizedAggregateFullNameByEntityFullName.IsValueCreated) { throw new InvalidOperationException( $"Aggregate extensions to '{aggregateExtensionDefinition.AggregateRootEntityName}' aggregate are being added after the domain model has been processed for extension entities."); } var aggregateExtension = new AggregateExtension(this, aggregateExtensionDefinition); _aggregateExtensions.Add(aggregateExtension); }
/// <summary> /// Adds an <see cref="AggregateExtensionDefinition" /> to be built into the Domain Model /// </summary> /// <param name="aggregateExtensionDefinition"></param> public void AddAggregateExtension(AggregateExtensionDefinition aggregateExtensionDefinition) { EnsureDomainModelIsNotNull(); _domainModel.AddAggregateExtension(aggregateExtensionDefinition); }