/// <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))); }