Esempio n. 1
0
        public async Task <IActionResult> UpdateUserRoles(string email, RoleForUpdate roleForUpdate)
        {
            var userRoles = await this.repo.UpdateUserRole(email, roleForUpdate);

            if (userRoles.Count > 0)
            {
                return(Ok(userRoles));
            }
            return(BadRequest("Unable to update roles"));
        }
Esempio n. 2
0
        public async Task <ICollection <string> > UpdateUserRole(string email, RoleForUpdate roleForUpdate)
        {
            var user = await this.userManager.FindByEmailAsync(email);

            //get roles
            var userRoles = await this.userManager.GetRolesAsync(user);

            var selectedRole = roleForUpdate.RoleNames;

            // selectedRole != null ? selectedROles : new string[] {};
            selectedRole = selectedRole ?? new string[] { };

            //add the roles to the user eexcept the one that already exist
            var result = await this.userManager.AddToRolesAsync(user, selectedRole.Except(userRoles));

            if (result.Succeeded)
            {
                result = await this.userManager.RemoveFromRolesAsync(user, userRoles.Except(selectedRole));

                return(await this.userManager.GetRolesAsync(user));
            }

            return(new string[] { });
        }