/// <summary> /// 更新用户角色。 /// </summary> /// <param name="role">用户角色实例。</param> /// <returns>返回角色更新结果。</returns> public virtual IdentityResult Update(TRole role) { if (role == null) { throw new ArgumentNullException(nameof(role)); } // ReSharper disable once SuspiciousTypeConversion.Global if (role is IRoleEventHandler <TRole> handler) { if (RoleContext.BeginTransaction(db => { if (!handler.OnUpdate(db)) { return(false); } if (!db.Update(role)) { return(false); } return(true); })) { return(IdentityResult.Success); } } else if (RoleContext.Update(role)) { return(IdentityResult.Success); } return(IdentityResult.Failed(ErrorDescriber.DefaultError())); }
/// <summary> /// 下移角色。 /// </summary> /// <param name="role">角色实例。</param> /// <returns>返回移动结果。</returns> public virtual bool MoveDown(TRole role) { if (role == null) { throw new ArgumentNullException(nameof(role)); } // ReSharper disable once SuspiciousTypeConversion.Global if (role is IRoleEventHandler <TRole> handler) { return(RoleContext.BeginTransaction(db => { if (!db.MoveDown(role.Id, x => x.RoleLevel, MoveExpression(role))) { return false; } if (!handler.OnUpdate(db)) { return false; } return true; })); } return(RoleContext.MoveDown(role.Id, x => x.RoleLevel, MoveExpression(role))); }