public void deleteObj(IRecycle obj) { if (m_poolList.IndexOf(obj) == -1) { m_poolList.Add(obj); } }
/// <summary> /// 检测并执行<see cref="IRecycle"/>接口的逻辑 /// </summary> /// <param name="entity">要检测的实体信息</param> /// <param name="operation">回收站操作类型</param> public static TEntity CheckIRecycle <TEntity, TKey>(this TEntity entity, RecycleOperation operation) where TEntity : IEntity <TKey> { if (!(entity is IRecycle)) { return(entity); } IRecycle entity1 = entity as IRecycle; switch (operation) { case RecycleOperation.LogicDelete: if (entity1.IsDeleted) { throw new InvalidOperationException("数据已是回收状态,不能逻辑删除"); } entity1.IsDeleted = true; break; case RecycleOperation.Restore: if (!entity1.IsDeleted) { throw new InvalidOperationException("数据不处于回收状态,不能还原"); } entity1.IsDeleted = false; break; case RecycleOperation.PhysicalDelete: if (!entity1.IsDeleted) { throw new InvalidOperationException("数据不处于回收状态,不能永久删除"); } break; } return((TEntity)entity1); }