public async Task DeleteRole(AppDiscordRole role)
        {
            var userRole = await _userRoleRepo.GetRoleByDiscordRoleId(role.Id);

            if (userRole == null)
            {
                throw new ArgumentException("User role doesn't exist");
            }

            await _userRoleRepo.DeleteRole(userRole.Id);
        }
示例#2
0
 public RoleMap DeleteRole(int roleId)
 {
     m_userRoleRepository.DeleteRole(roleId);
     return(GetRoles());
 }
 public void DeleteRole(UserRole userRole)
 {
     _userRoleRepository.DeleteRole(userRole);
 }
        public override async Task <int> HandleCommand(ChangeRolesCommand request, CancellationToken cancellationToken)
        {
            var user = await userQueries.Get(request.UserId);

            if (user == null)
            {
                throw new BusinessException("NotExistedAccount");
            }
            if (user.IsExternalUser)
            {
                throw new BusinessException("ExternalAccount");
            }
            var rs = -1;

            using (var conn = DalHelper.GetConnection())
            {
                conn.Open();
                using (var trans = conn.BeginTransaction())
                {
                    try
                    {
                        userRoleRepository.JoinTransaction(conn, trans);
                        roleQueries.JoinTransaction(conn, trans);
                        await userRoleRepository.DeleteRole(user.Id);

                        foreach (var item in request.RoleIds)
                        {
                            var role = await roleQueries.Get(item);

                            if (role != null && role.IsActive && !role.IsExternalRole && role.Id != 1) // != Administrator
                            {
                                await userRoleRepository.Add(new UI.Models.UserAccountRole()
                                {
                                    RoleId = role.Id,
                                    UserId = user.Id
                                });
                            }
                        }
                        return(rs = 0);
                    }
                    finally
                    {
                        if (rs == 0)
                        {
                            trans.Commit();
                        }
                        else
                        {
                            try
                            {
                                trans.Rollback();
                            }
                            catch (Exception ex)
                            {
                                LogHelper.GetLogger().Error(ex);
                            }
                        }
                    }
                }
            }
        }