public async Task UpdateRoleUsers(string roleId, List <string> userIds)
        {
            await ExecuteAsync(true, AuditTrailOperations.UpdateRole, _unitOfWork, async() =>
            {
                var roleUsers = _userRoleRepo.GetList(predicate: r => r.RoleId == roleId);
                _userRoleRepo.Delete(roleUsers);

                var newRoleUsers = userIds.Select(e => new ApplicationUserRole()
                {
                    RoleId = roleId,
                    UserId = e
                });
                await _userRoleRepo.AddAsync(newRoleUsers);
                return(string.Empty);
            }, $"Add/Remove users from role #{roleId}");
        }
示例#2
0
 private async Task updateUserRoles(string userId, List <string> roles)
 {
     _userRoleRepo.Delete(e => e.UserId == userId);
     _unitOfWork.SaveChanges(); // this is necessary because userId above is being tracked
     var _roles = roles.Select(e => new ApplicationUserRole()
     {
         RoleId = e,
         UserId = userId
     });
     await _userRoleRepo.AddAsync(_roles);
 }
示例#3
0
        public async Task RemoveFromRoleAsync(ApplicationUser user, string roleName)
        {
            var role = userrolerepo.ApplicationRoleRepository.FindByName(roleName);

            if (role == null)
            {
                throw new ArgumentException(string.Format("Role {0} not existed.", roleName), "roleName");
            }

            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            var r = userrolerepo.Get(user.Id, role.Id);

            userrolerepo.Delete(r);
            await userrolerepo.UnitOfWork.CommitAsync();
        }