FullAuditedEntity.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. namespace Abp.Domain.Entities.Auditing
  4. {
  5. /// <summary>
  6. /// A shortcut of <see cref="FullAuditedEntity{TPrimaryKey}"/> for most used primary key type (<see cref="int"/>).
  7. /// </summary>
  8. [Serializable]
  9. public abstract class FullAuditedEntity : FullAuditedEntity<int>, IEntity
  10. {
  11. }
  12. /// <summary>
  13. /// Implements <see cref="IFullAudited"/> to be a base class for full-audited entities.
  14. /// </summary>
  15. /// <typeparam name="TPrimaryKey">Type of the primary key of the entity</typeparam>
  16. [Serializable]
  17. public abstract class FullAuditedEntity<TPrimaryKey> : AuditedEntity<TPrimaryKey>, IFullAudited
  18. {
  19. /// <summary>
  20. /// Is this entity Deleted?
  21. /// </summary>
  22. public virtual bool IsDeleted { get; set; }
  23. /// <summary>
  24. /// Which user deleted this entity?
  25. /// </summary>
  26. public virtual long? DeleterUserId { get; set; }
  27. /// <summary>
  28. /// Deletion time of this entity.
  29. /// </summary>
  30. public virtual DateTime? DeletionTime { get; set; }
  31. }
  32. /// <summary>
  33. /// Implements <see cref="IFullAudited{TUser}"/> to be a base class for full-audited entities.
  34. /// </summary>
  35. /// <typeparam name="TPrimaryKey">Type of the primary key of the entity</typeparam>
  36. /// <typeparam name="TUser">Type of the user</typeparam>
  37. [Serializable]
  38. public abstract class FullAuditedEntity<TPrimaryKey, TUser> : AuditedEntity<TPrimaryKey, TUser>, IFullAudited<TUser>
  39. where TUser : IEntity<long>
  40. {
  41. /// <summary>
  42. /// Is this entity Deleted?
  43. /// </summary>
  44. public virtual bool IsDeleted { get; set; }
  45. /// <summary>
  46. /// Reference to the deleter user of this entity.
  47. /// </summary>
  48. [ForeignKey("DeleterUserId")]
  49. public virtual TUser DeleterUser { get; set; }
  50. /// <summary>
  51. /// Which user deleted this entity?
  52. /// </summary>
  53. public virtual long? DeleterUserId { get; set; }
  54. /// <summary>
  55. /// Deletion time of this entity.
  56. /// </summary>
  57. public virtual DateTime? DeletionTime { get; set; }
  58. }
  59. }