public async Task <IActionResult> ManageUsersInRole(UsersInRoleDTO model)
        {
            var role = await _roleManager.FindByIdAsync(model.Id);

            if (role == null)
            {
                ModelState.AddModelError("", "Role does not exist");
                return(BadRequest(ModelState));
            }

            foreach (string user in model.EnrolledUsers)
            {
                var appUser = await _userManager.FindByIdAsync(user);

                if (appUser == null)
                {
                    ModelState.AddModelError("", String.Format("User: {0} does not exists", user));
                    continue;
                }

                if (_userManager.IsInRoleAsync(appUser, role.Name) == null)
                {
                    IdentityResult result = await _userManager.AddToRoleAsync(appUser, role.Name);

                    if (!result.Succeeded)
                    {
                        ModelState.AddModelError("", String.Format("User: {0} could not be added to role", user));
                    }
                }
            }

            foreach (string user in model.RemovedUsers)
            {
                var appUser = await _userManager.FindByIdAsync(user);

                if (appUser == null)
                {
                    ModelState.AddModelError("", String.Format("User: {0} does not exists", user));
                    continue;
                }

                IdentityResult result = await _userManager.RemoveFromRoleAsync(appUser, role.Name);

                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", String.Format("User: {0} could not be removed from role", user));
                }
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok());
        }
Exemple #2
0
        public async Task <object> AddUsersInRoleAsync(UsersInRoleDTO usersInRoleDTO)
        {
            foreach (var userId in usersInRoleDTO.UsersId)
            {
                if (!string.IsNullOrEmpty(userId))
                {
                    var model = await this.userManager.FindByIdAsync(userId);

                    var result = await this.userManager.AddToRoleAsync(model, usersInRoleDTO.RoleName);
                }
            }
            this.DisplayMessage = "Users role updated succesfully";
            return(usersInRoleDTO);
        }
Exemple #3
0
        public async Task <object> AddUsersInRole([FromBody] UsersInRoleDTO model)
        {
            try
            {
                var data = await _repository.AddUsersInRoleAsync(model);

                _response.Result         = data;
                _response.IsSuccess      = _repository.IsSuccess;
                _response.ErrorMessages  = _repository.ErrorMessages;
                _response.DisplayMessage = _repository.DisplayMessage;
            }
            catch (Exception ex)
            {
                _response.IsSuccess     = false;
                _response.ErrorMessages = new List <ErrorMessageDTO>()
                {
                    new ErrorMessageDTO()
                    {
                        Message = ex.ToString()
                    }
                };
            }
            return(_response);
        }