Пример #1
0
 /// <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()));
 }
Пример #2
0
        /// <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)));
        }