|
|
|
|
@ -1,15 +1,31 @@
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
using Volo.Abp.Auditing;
|
|
|
|
|
using Volo.Abp.Data;
|
|
|
|
|
|
|
|
|
|
namespace Volo.Abp.Domain.Entities
|
|
|
|
|
{
|
|
|
|
|
[Serializable]
|
|
|
|
|
public abstract class AggregateRoot : Entity, IAggregateRoot, IGeneratesDomainEvents
|
|
|
|
|
public abstract class AggregateRoot : Entity,
|
|
|
|
|
IAggregateRoot,
|
|
|
|
|
IGeneratesDomainEvents,
|
|
|
|
|
IHasExtraProperties,
|
|
|
|
|
IHasConcurrencyStamp
|
|
|
|
|
{
|
|
|
|
|
public Dictionary<string, object> ExtraProperties { get; protected set; }
|
|
|
|
|
|
|
|
|
|
[DisableAuditing]
|
|
|
|
|
public string ConcurrencyStamp { get; set; }
|
|
|
|
|
|
|
|
|
|
private readonly ICollection<object> _localEvents = new Collection<object>();
|
|
|
|
|
private readonly ICollection<object> _distributedEvents = new Collection<object>();
|
|
|
|
|
|
|
|
|
|
protected AggregateRoot()
|
|
|
|
|
{
|
|
|
|
|
ExtraProperties = new Dictionary<string, object>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void AddLocalEvent(object eventData)
|
|
|
|
|
{
|
|
|
|
|
_localEvents.Add(eventData);
|
|
|
|
|
@ -25,7 +41,7 @@ namespace Volo.Abp.Domain.Entities
|
|
|
|
|
return _localEvents;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IEnumerable<object> GetDistributedEvents()
|
|
|
|
|
public virtual IEnumerable<object> GetDistributedEvents()
|
|
|
|
|
{
|
|
|
|
|
return _distributedEvents;
|
|
|
|
|
}
|
|
|
|
|
@ -35,27 +51,36 @@ namespace Volo.Abp.Domain.Entities
|
|
|
|
|
_localEvents.Clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ClearDistributedEvents()
|
|
|
|
|
public virtual void ClearDistributedEvents()
|
|
|
|
|
{
|
|
|
|
|
_distributedEvents.Clear();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Serializable]
|
|
|
|
|
public abstract class AggregateRoot<TKey> : Entity<TKey>, IAggregateRoot<TKey>, IGeneratesDomainEvents
|
|
|
|
|
public abstract class AggregateRoot<TKey> : Entity<TKey>,
|
|
|
|
|
IAggregateRoot<TKey>,
|
|
|
|
|
IGeneratesDomainEvents,
|
|
|
|
|
IHasExtraProperties,
|
|
|
|
|
IHasConcurrencyStamp
|
|
|
|
|
{
|
|
|
|
|
public Dictionary<string, object> ExtraProperties { get; protected set; }
|
|
|
|
|
|
|
|
|
|
[DisableAuditing]
|
|
|
|
|
public string ConcurrencyStamp { get; set; }
|
|
|
|
|
|
|
|
|
|
private readonly ICollection<object> _localEvents = new Collection<object>();
|
|
|
|
|
private readonly ICollection<object> _distributedEvents = new Collection<object>();
|
|
|
|
|
|
|
|
|
|
protected AggregateRoot()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
ExtraProperties = new Dictionary<string, object>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected AggregateRoot(TKey id)
|
|
|
|
|
: base(id)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
ExtraProperties = new Dictionary<string, object>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void AddLocalEvent(object eventData)
|
|
|
|
|
@ -73,7 +98,7 @@ namespace Volo.Abp.Domain.Entities
|
|
|
|
|
return _localEvents;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IEnumerable<object> GetDistributedEvents()
|
|
|
|
|
public virtual IEnumerable<object> GetDistributedEvents()
|
|
|
|
|
{
|
|
|
|
|
return _distributedEvents;
|
|
|
|
|
}
|
|
|
|
|
@ -83,7 +108,7 @@ namespace Volo.Abp.Domain.Entities
|
|
|
|
|
_localEvents.Clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ClearDistributedEvents()
|
|
|
|
|
public virtual void ClearDistributedEvents()
|
|
|
|
|
{
|
|
|
|
|
_distributedEvents.Clear();
|
|
|
|
|
}
|
|
|
|
|
|