namespace IM.DomainCommons { public class AggregateRootEntity : BaseEntity, IAggregateRoot, ISoftDelete, IHasCreationTime, IHasDeletionTime, IHasModificationTime { public bool IsDeleted { get; private set; } public DateTimeOffset CreationTime { get; private set; } = DateTime.Now; public DateTimeOffset? Deletion { get; private set; } public DateTimeOffset? ModificationTime { get; set; } public void SoftDelete() { Deletion = DateTime.Now; IsDeleted = true; } public void NotifyModified() { ModificationTime = DateTime.Now; } } }