using Abp.Domain.Entities.Auditing;
using Abp.Extensions;
namespace Abp.Domain.Entities
{
///
/// Some useful extension methods for Entities.
///
public static class EntityExtensions
{
///
/// Check if this Entity is null of marked as deleted.
///
public static bool IsNullOrDeleted(this ISoftDelete entity)
{
return entity == null || entity.IsDeleted;
}
///
/// Undeletes this entity by setting to false and
/// properties to null.
///
public static void UnDelete(this ISoftDelete entity)
{
entity.IsDeleted = false;
if (entity is IDeletionAudited)
{
var deletionAuditedEntity = entity.As();
deletionAuditedEntity.DeletionTime = null;
deletionAuditedEntity.DeleterUserId = null;
}
}
}
}