| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System;
- using System.ComponentModel.DataAnnotations.Schema;
- using Abp.Timing;
- namespace Abp.Domain.Entities.Auditing
- {
- /// <summary>
- /// A shortcut of <see cref="CreationAuditedAggregateRoot{TPrimaryKey}"/> for most used primary key type (<see cref="int"/>).
- /// </summary>
- [Serializable]
- public abstract class CreationAuditedAggregateRoot : CreationAuditedAggregateRoot<int>
- {
-
- }
- /// <summary>
- /// This class can be used to simplify implementing <see cref="ICreationAudited"/> for aggregate roots.
- /// </summary>
- /// <typeparam name="TPrimaryKey">Type of the primary key of the entity</typeparam>
- [Serializable]
- public abstract class CreationAuditedAggregateRoot<TPrimaryKey> : AggregateRoot<TPrimaryKey>, ICreationAudited
- {
- /// <summary>
- /// Creation time of this entity.
- /// </summary>
- public virtual DateTime CreationTime { get; set; }
- /// <summary>
- /// Creator of this entity.
- /// </summary>
- public virtual long? CreatorUserId { get; set; }
- /// <summary>
- /// Constructor.
- /// </summary>
- protected CreationAuditedAggregateRoot()
- {
- CreationTime = Clock.Now;
- }
- }
- /// <summary>
- /// This class can be used to simplify implementing <see cref="ICreationAudited{TUser}"/> for aggregate roots.
- /// </summary>
- /// <typeparam name="TPrimaryKey">Type of the primary key of the entity</typeparam>
- /// <typeparam name="TUser">Type of the user</typeparam>
- [Serializable]
- public abstract class CreationAuditedAggregateRoot<TPrimaryKey, TUser> : CreationAuditedAggregateRoot<TPrimaryKey>, ICreationAudited<TUser>
- where TUser : IEntity<long>
- {
- /// <summary>
- /// Reference to the creator user of this entity.
- /// </summary>
- [ForeignKey("CreatorUserId")]
- public virtual TUser CreatorUser { get; set; }
- }
- }
|