/// <summary> /// 检测并执行<see cref="IUpdateAudited"/>接口的逻辑,此功能应按需调用 /// </summary> /// <param name="entity">要检测的实体信息</param> public static TEntity CheckIUpdateAudited <TEntity, TKey>(this TEntity entity) where TEntity : IEntity <TKey> where TKey : IEquatable <TKey> { if (!(entity is IUpdateAudited)) { return(entity); } IUpdateAudited entity1 = entity as IUpdateAudited; //未实现的记录当前用户信息 entity1.LastUpdatedTime = DateTime.Now; return((TEntity)entity1); }
/// <summary> /// 检测并执行<see cref="IUpdateAudited{TUserKey}"/>接口的处理 /// </summary> public static TEntity CheckIUpdateAudited <TEntity, TKey, TUserKey>(this TEntity entity, IPrincipal user) where TEntity : IEntity <TKey> where TUserKey : struct { if (!(entity is IUpdateAudited <TUserKey>)) { return(entity); } IUpdateAudited <TUserKey> entity1 = (IUpdateAudited <TUserKey>)entity; entity1.LastUpdaterId = user.Identity.GetUserId <TUserKey>(); entity1.LastUpdatedTime = DateTime.Now; return((TEntity)entity1); }
/// <summary> /// 检测并执行<see cref="IUpdateAudited"/>接口的逻辑 /// </summary> /// <param name="entity">要检测的实体信息</param> public static TEntity CheckIUpdateAudited <TEntity, TKey>(this TEntity entity) where TEntity : IEntity <TKey> { if (!(entity is IUpdateAudited)) { return(entity); } IUpdateAudited entity1 = entity as IUpdateAudited; ClaimsIdentity identity = Thread.CurrentPrincipal.Identity as ClaimsIdentity; if (identity != null && identity.IsAuthenticated) { entity1.LastUpdatorUserId = identity.GetClaimValue(ClaimTypes.NameIdentifier); } entity1.LastUpdatedTime = DateTime.Now; return((TEntity)entity1); }
/// <summary> /// 检测并执行<see cref="IUpdateAudited{TUserKey}"/>接口的处理 /// </summary> public static TEntity CheckIUpdateAudited <TEntity, TKey, TUserKey>(this TEntity entity, IPrincipal user) where TEntity : IEntity <TKey> where TKey : IEquatable <TKey> where TUserKey : struct, IEquatable <TUserKey> { if (!(entity is IUpdateAudited <TUserKey>)) { return(entity); } IUpdateAudited <TUserKey> entity1 = (IUpdateAudited <TUserKey>)entity; entity1.LastUpdaterId = user.Identity.IsAuthenticated ? (TUserKey?)user.Identity.GetUserId <TUserKey>() : null; if (entity1.LastUpdatedTime == null || entity1.LastUpdatedTime.Value == default(DateTime)) { entity1.LastUpdatedTime = DateTime.Now; } return((TEntity)entity1); }
/// <summary> /// 检测并执行<see cref="IUpdateAudited"/>接口的逻辑,此功能应按需调用 /// </summary> /// <param name="entity">要检测的实体信息</param> public static TEntity CheckIUpdateAudited <TEntity, TKey>(this TEntity entity) where TEntity : IEntity <TKey> where TKey : IEquatable <TKey> { if (!(entity is IUpdateAudited)) { return(entity); } IUpdateAudited entity1 = entity as IUpdateAudited; if (Thread.CurrentPrincipal.Identity is ClaimsIdentity identity && identity.IsAuthenticated) { string id = identity.GetClaimValueFirstOrDefault(ClaimTypes.NameIdentifier); if (!string.IsNullOrEmpty(id)) { entity1.LastUpdatorUserId = id; } } entity1.LastUpdatedTime = DateTime.Now; return((TEntity)entity1); }