Esempio n. 1
0
        public IHttpActionResult Get(int id)
        {
            var resultado = _userManager.FindByIdAsync(id);

            if (resultado == null)
            {
                return(NotFound());
            }

            return(Ok(resultado));
        }
Esempio n. 2
0
        public async Task <IHttpActionResult> Put([FromBody] UsuarioRolesViewModel viewModel)
        {
            var user = await _userManager.FindByIdAsync(viewModel.UserId);

            var possibleRoles = await _roleManager.Roles.ToListAsync();

            var userRoles = await _userManager.GetRolesAsync(user.Id);

            var submittedRoles = viewModel.SelectedRoles;

            var shouldUpdateSecurityStamp = false;

            foreach (var submittedRole in submittedRoles)
            {
                var hasRole = await _userManager.IsInRoleAsync(user.Id, submittedRole);

                if (!hasRole)
                {
                    shouldUpdateSecurityStamp = true;
                    await _userManager.AddToRoleAsync(user.Id, submittedRole);
                }
            }

            foreach (var removedRole in possibleRoles.Select(r => r.Name).Except(submittedRoles))
            {
                shouldUpdateSecurityStamp = true;
                await _userManager.RemoveFromRoleAsync(user.Id, removedRole);
            }

            if (shouldUpdateSecurityStamp)
            {
                await _userManager.UpdateSecurityStampAsync(user.Id);
            }

            return(Ok(true));
        }