Browse Source

Merge pull request #4809 from abpframework/maliming/BasicAggregateRoot

Introduce BasicAggregateRoot base class
pull/4999/head
Halil İbrahim Kalkan 6 years ago
committed by GitHub
parent
commit
d7934f3f5c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 76
      framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/AggregateRoot.cs
  2. 95
      framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/BasicAggregateRoot.cs

76
framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/AggregateRoot.cs

@ -9,9 +9,7 @@ using Volo.Abp.ObjectExtending;
namespace Volo.Abp.Domain.Entities namespace Volo.Abp.Domain.Entities
{ {
[Serializable] [Serializable]
public abstract class AggregateRoot : Entity, public abstract class AggregateRoot : BasicAggregateRoot,
IAggregateRoot,
IGeneratesDomainEvents,
IHasExtraProperties, IHasExtraProperties,
IHasConcurrencyStamp IHasConcurrencyStamp
{ {
@ -20,9 +18,6 @@ namespace Volo.Abp.Domain.Entities
[DisableAuditing] [DisableAuditing]
public virtual string ConcurrencyStamp { get; set; } public virtual string ConcurrencyStamp { get; set; }
private readonly ICollection<object> _localEvents = new Collection<object>();
private readonly ICollection<object> _distributedEvents = new Collection<object>();
protected AggregateRoot() protected AggregateRoot()
{ {
ConcurrencyStamp = Guid.NewGuid().ToString("N"); ConcurrencyStamp = Guid.NewGuid().ToString("N");
@ -30,36 +25,6 @@ namespace Volo.Abp.Domain.Entities
this.SetDefaultsForExtraProperties(); this.SetDefaultsForExtraProperties();
} }
protected virtual void AddLocalEvent(object eventData)
{
_localEvents.Add(eventData);
}
protected virtual void AddDistributedEvent(object eventData)
{
_distributedEvents.Add(eventData);
}
public virtual IEnumerable<object> GetLocalEvents()
{
return _localEvents;
}
public virtual IEnumerable<object> GetDistributedEvents()
{
return _distributedEvents;
}
public virtual void ClearLocalEvents()
{
_localEvents.Clear();
}
public virtual void ClearDistributedEvents()
{
_distributedEvents.Clear();
}
public virtual IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public virtual IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
return ExtensibleObjectValidator.GetValidationErrors( return ExtensibleObjectValidator.GetValidationErrors(
@ -70,9 +35,7 @@ namespace Volo.Abp.Domain.Entities
} }
[Serializable] [Serializable]
public abstract class AggregateRoot<TKey> : Entity<TKey>, public abstract class AggregateRoot<TKey> : BasicAggregateRoot<TKey>,
IAggregateRoot<TKey>,
IGeneratesDomainEvents,
IHasExtraProperties, IHasExtraProperties,
IHasConcurrencyStamp IHasConcurrencyStamp
{ {
@ -81,9 +44,6 @@ namespace Volo.Abp.Domain.Entities
[DisableAuditing] [DisableAuditing]
public virtual string ConcurrencyStamp { get; set; } public virtual string ConcurrencyStamp { get; set; }
private readonly ICollection<object> _localEvents = new Collection<object>();
private readonly ICollection<object> _distributedEvents = new Collection<object>();
protected AggregateRoot() protected AggregateRoot()
{ {
ConcurrencyStamp = Guid.NewGuid().ToString("N"); ConcurrencyStamp = Guid.NewGuid().ToString("N");
@ -99,36 +59,6 @@ namespace Volo.Abp.Domain.Entities
this.SetDefaultsForExtraProperties(); this.SetDefaultsForExtraProperties();
} }
protected virtual void AddLocalEvent(object eventData)
{
_localEvents.Add(eventData);
}
protected virtual void AddDistributedEvent(object eventData)
{
_distributedEvents.Add(eventData);
}
public virtual IEnumerable<object> GetLocalEvents()
{
return _localEvents;
}
public virtual IEnumerable<object> GetDistributedEvents()
{
return _distributedEvents;
}
public virtual void ClearLocalEvents()
{
_localEvents.Clear();
}
public virtual void ClearDistributedEvents()
{
_distributedEvents.Clear();
}
public virtual IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public virtual IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
return ExtensibleObjectValidator.GetValidationErrors( return ExtensibleObjectValidator.GetValidationErrors(
@ -137,4 +67,4 @@ namespace Volo.Abp.Domain.Entities
); );
} }
} }
} }

95
framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Entities/BasicAggregateRoot.cs

@ -0,0 +1,95 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace Volo.Abp.Domain.Entities
{
[Serializable]
public abstract class BasicAggregateRoot : Entity,
IAggregateRoot,
IGeneratesDomainEvents
{
private readonly ICollection<object> _distributedEvents = new Collection<object>();
private readonly ICollection<object> _localEvents = new Collection<object>();
public virtual IEnumerable<object> GetLocalEvents()
{
return _localEvents;
}
public virtual IEnumerable<object> GetDistributedEvents()
{
return _distributedEvents;
}
public virtual void ClearLocalEvents()
{
_localEvents.Clear();
}
public virtual void ClearDistributedEvents()
{
_distributedEvents.Clear();
}
protected virtual void AddLocalEvent(object eventData)
{
_localEvents.Add(eventData);
}
protected virtual void AddDistributedEvent(object eventData)
{
_distributedEvents.Add(eventData);
}
}
[Serializable]
public abstract class BasicAggregateRoot<TKey> : Entity<TKey>,
IAggregateRoot<TKey>,
IGeneratesDomainEvents
{
private readonly ICollection<object> _distributedEvents = new Collection<object>();
private readonly ICollection<object> _localEvents = new Collection<object>();
protected BasicAggregateRoot()
{
}
protected BasicAggregateRoot(TKey id)
: base(id)
{
}
public virtual IEnumerable<object> GetLocalEvents()
{
return _localEvents;
}
public virtual IEnumerable<object> GetDistributedEvents()
{
return _distributedEvents;
}
public virtual void ClearLocalEvents()
{
_localEvents.Clear();
}
public virtual void ClearDistributedEvents()
{
_distributedEvents.Clear();
}
protected virtual void AddLocalEvent(object eventData)
{
_localEvents.Add(eventData);
}
protected virtual void AddDistributedEvent(object eventData)
{
_distributedEvents.Add(eventData);
}
}
}
Loading…
Cancel
Save