diff --git a/src/Services/Ordering/Ordering.Domain/SeedWork/Entity.cs b/src/Services/Ordering/Ordering.Domain/SeedWork/Entity.cs index 11b940218..a1f2fa1c8 100644 --- a/src/Services/Ordering/Ordering.Domain/SeedWork/Entity.cs +++ b/src/Services/Ordering/Ordering.Domain/SeedWork/Entity.cs @@ -21,17 +21,22 @@ } private List _domainEvents; - public List DomainEvents => _domainEvents; - + public IReadOnlyCollection DomainEvents => _domainEvents?.AsReadOnly(); + public void AddDomainEvent(INotification eventItem) { _domainEvents = _domainEvents ?? new List(); _domainEvents.Add(eventItem); } + public void RemoveDomainEvent(INotification eventItem) { - if (_domainEvents is null) return; - _domainEvents.Remove(eventItem); + _domainEvents?.Remove(eventItem); + } + + public void ClearDomainEvents() + { + _domainEvents?.Clear(); } public bool IsTransient() diff --git a/src/Services/Ordering/Ordering.Infrastructure/MediatorExtension.cs b/src/Services/Ordering/Ordering.Infrastructure/MediatorExtension.cs index 521f85ae8..82a7235a2 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/MediatorExtension.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/MediatorExtension.cs @@ -19,7 +19,7 @@ namespace Ordering.Infrastructure .ToList(); domainEntities.ToList() - .ForEach(entity => entity.Entity.DomainEvents.Clear()); + .ForEach(entity => entity.Entity.ClearDomainEvents()); var tasks = domainEvents .Select(async (domainEvent) => {